我似乎在将数据推送到状态数组时遇到问题。
我正在尝试以这种方式实现它:
this.setState({ myArray: this.state.myArray.push('new value') })
但我相信这是不正确的方式并导致可变性问题?
原文由 Ilja 发布,翻译遵循 CC BY-SA 4.0 许可协议
我似乎在将数据推送到状态数组时遇到问题。
我正在尝试以这种方式实现它:
this.setState({ myArray: this.state.myArray.push('new value') })
但我相信这是不正确的方式并导致可变性问题?
原文由 Ilja 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用 es6 可以这样做:
this.setState({ myArray: [...this.state.myArray, 'new value'] }) //simple value
this.setState({ myArray: [...this.state.myArray, ...[1,2,3] ] }) //another array
原文由 Aliaksandr Sushkevich 发布,翻译遵循 CC BY-SA 3.0 许可协议
10 回答11.2k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
数组推送返回长度
this.state.myArray.push('new value')
返回扩展数组的长度,而不是数组本身。 Array.prototype.push() 。我猜你希望返回的值是数组。
不变性
这似乎是 React 的行为:
我想,你会这样做(不熟悉 React):