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') }
})