我将一个元素推入一个function(event)中的数组, 将这个元素推送到数组后,我得到了这个错误,
handleAddList(s) {
this.setState({lists :this.state.lists.push(s) });
console.log(this.state.lists);
}
lists.map不是函数。 列出反应成分
如果我这样写
handleAddList(s) {
this.setState({lists :['something','something else']});
console.log(this.state.lists);
}
但是当我手动定义列表时,它会很好地工作。当我在数组中推送一个新元素时,就会出现此错误。同样,如果push破坏了数组。 最好的问候
答案 0 :(得分:1)
var item = items[0]
返回附加元素之后的数组长度,而不是数组,您需要的是item.seen = true
push
还setState doesn't update the state immediately
,您将需要使用回调,例如
concat
答案 1 :(得分:1)
push
的结果是数组的长度,这不是您想要的长度。您要创建一个包含新对象的新数组:
handleAddList(s) {
this.setState(
previousState => {
return { lists: [...previousState.lists, s] };
},
() => {
console.log(this.state);
}
);
}