gpt4 book ai didi

javascript - this.state.items.map 不是函数

转载 作者:行者123 更新时间:2023-11-30 08:29:41 24 4
gpt4 key购买 nike

我执行了 console.log(items) 我得到了 ['a','b','c'] 但我得到了 map is not a function 的错误。

..    
var Todo_list = React.createClass({
getInitialState(){
return { items:['a','b']}
},
addItem(item){
this.setState({items:this.state.items.push(item)})
console.log(this.state.items) // this is working
},
render() {
return (
<div>
<TodoInput addItem={this.addItem} />

{this.state.items.map((item,i) => <li key={i}>{item}</li> )}
</div>
);
}
});
..

https://jsfiddle.net/tehwajh2/尝试添加一个项目,我想知道为什么,我猜我推对了吗?

最佳答案

在这种情况下,您可以使用 .concat 而不是 .push,因为 .push 返回新长度 数组的长度是 Number,而 Number 没有 .map 方法,这就是你得到错误的原因

 this.setState({ items: this.state.items.concat(item) })

Example

The push() method adds one or more elements to the end of an array and returns the new length of the array.

The concat() method returns a new array comprised of the array on which it is called joined with the array(s) and/or value(s) provided as arguments.

关于javascript - this.state.items.map 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39855643/

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