Ray*_*der 1 reactjs react-native react-native-android
我想将对象添加到我的状态,我已经搜索解决它,但所有这些都不起作用
this.state = {
value : {name:'test'}
};
Run Code Online (Sandbox Code Playgroud)
我想在 this.state.value 中添加一个对象 {coordinate:'0,0'}
我试过这个,但我得到了错误:传播不可迭代实例的尝试无效
let floors = [...this.state.value];
floors.push({ coordinate: '0,0'});
this.setState({ value:floors });
Run Code Online (Sandbox Code Playgroud)
我试过这个,但我得到了错误:传播不可迭代实例的尝试无效
this.setState({
value:[...this.state.value, {coordinate: '0,0'}]
});
Run Code Online (Sandbox Code Playgroud)
我试过这个,但我得到了错误:_this2.state.value.concat is not a function
this.setState( {
value: this.state.value.concat({koordinat:coor})
});
Run Code Online (Sandbox Code Playgroud)
请帮我解决它
您试图将地图展开为数组。
如果你想从一个数组开始,那么改变你的初始状态:
this.state = { value: [{ name: 'test' }] }
Run Code Online (Sandbox Code Playgroud)
然后您可以使用您的原始代码,前两个示例中的任何一个。
由于同样的原因,您的第二个示例失败了。
第三个例子没有意义,你试图concat到一个对象上。
根据注释,原始代码中没有一个真正解决您要执行的操作,即简单地向现有对象添加属性。正如 shogges 指出的那样,这很简单:
this.setState({
value: { ...this.state.value, coordinate: '0, 0') }
})
Run Code Online (Sandbox Code Playgroud)
这会将现有对象扩展为具有附加属性的新对象。
也就是说:坐标不是字符串,它们是对象。
| 归档时间: |
|
| 查看次数: |
157 次 |
| 最近记录: |