Reactjs 我想将对象推送/添加到react native状态(传播不可复制实例的尝试无效)
我想将对象添加到我的状态,我有搜索来解决它,但所有这些都不起作用Reactjs 我想将对象推送/添加到react native状态(传播不可复制实例的尝试无效),reactjs,react-native,react-native-android,Reactjs,React Native,React Native Android,我想将对象添加到我的状态,我有搜索来解决它,但所有这些都不起作用 this.state = { value : {name:'test'} }; 我想在this.state.value中添加一个对象{坐标:'0,0'} 我尝试了这一个,但我得到了错误:无效的尝试传播非 不可数实例 我尝试了这一个,但我得到了错误:无效的尝试传播非 不可数实例 我尝试了这个,但出现了错误:_this2.state.value.concat不是 作用 请帮我解决这个问题您试图将地图展开成一个数组 如果要从数组
this.state = {
value : {name:'test'}
};
我想在this.state.value中添加一个对象{坐标:'0,0'}
我尝试了这一个,但我得到了错误:无效的尝试传播非
不可数实例
我尝试了这一个,但我得到了错误:无效的尝试传播非
不可数实例
我尝试了这个,但出现了错误:_this2.state.value.concat不是
作用
请帮我解决这个问题您试图将地图展开成一个数组 如果要从数组开始,请更改初始状态:
this.state = { value: [{ name: 'test' }] }
然后可以使用原始代码,前两个示例中的任意一个
您的第二个示例由于同样的原因失败
第三个示例没有意义,您试图将concat
连接到一个对象上
基于这些注释,原始代码中没有一个真正解决了您要做的事情,即简单地向现有对象添加属性。正如schogges所指出的,这是微不足道的:
this.setState({
value: { ...this.state.value, coordinate: '0, 0') }
})
这会将现有对象扩展为具有附加属性的新对象
也就是说:坐标不是字符串,它们是对象。您试图将地图展开为数组 如果要从数组开始,请更改初始状态:
this.state = { value: [{ name: 'test' }] }
然后可以使用原始代码,前两个示例中的任意一个
您的第二个示例由于同样的原因失败
第三个示例没有意义,您试图将concat
连接到一个对象上
基于这些注释,原始代码中没有一个真正解决了您要做的事情,即简单地向现有对象添加属性。正如schogges所指出的,这是微不足道的:
this.setState({
value: { ...this.state.value, coordinate: '0, 0') }
})
这会将现有对象扩展为具有附加属性的新对象
也就是说:坐标不是字符串,它们是对象。我想添加对象而不是数组。这是怎么回事?然后你应该做:
this.setState({value:{…this.state.value,坐标:'0,0'})
@RayCoder那么你的代码毫无意义——在上两个示例中,你明确地将状态视为一个数组或值——如果你想向状态中的对象添加属性,那么只需添加它。我想添加对象,而不是数组。它怎么样?那么你应该这样做:this.setState({value:{…this.state.value,坐标:'0'})
@RayCoder那么你的代码毫无意义——在上两个示例中,你明确地将状态视为数组或值——如果你想向状态中的对象添加属性,那么只需添加它即可。
this.setState({
value: { ...this.state.value, coordinate: '0, 0') }
})