gpt4 book ai didi

javascript - 类型错误 : undefined is not a function (evaluating 'this.state.list.map' )

转载 作者:行者123 更新时间:2023-11-29 20:49:22 26 4
gpt4 key购买 nike

所以我试图将一个变量从我的状态推送到一个名为 list 的数组中。但是它抛出了这个错误,说 undefined 不是一个函数。但是,当我将 push 切换为 concat 时,它起作用了。但是我想使用 push 因为它更快。我该如何解决这个问题?

AsyncStorage.getItem("one").then((value) => {
if (value === "true"){
this.setState({
list: this.state.list.push({
name: 'Butter',
checkbox: 1,
})
})
}
else {
this.setState({
unavailable: this.state.unavailable.push(
"butter"
)
})
}
});

我的列表是这样声明的

  constructor() {
super()
this.state = {
unavailable: [],
list: []
}
}

最佳答案

Array.push() 不返回数组,它返回数组长度。因此,列表从数组变为数字。它还会直接改变数组。

正如其他人所说,最好这样做:

this.setState({
list: [
...this.state.list,
{ name: 'Butter', checkbox: 1 }
]
})

这样状态就不会直接通过使用 push() 来改变。

我想我也会为那些感兴趣的人解释发生了什么。我们不是直接改变或更改 ths.state.list 数组,而是将当前数组复制到一个新数组并同时附加新项。

关于javascript - 类型错误 : undefined is not a function (evaluating 'this.state.list.map' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52685328/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com