Javascript 将新键/值添加到React Native中的对象中

Javascript 将新键/值添加到React Native中的对象中,javascript,reactjs,object,react-native,add,Javascript,Reactjs,Object,React Native,Add,我在做一个项目。现在,我正在对象中添加新的键/值 这是可行的,但我想知道是否有更好的方法,或者你是否有任何建议 我对ReactJS/ReactNative还是新手,对Javascript还不是100%熟练。这是我的代码: 我的对象 state = { result : { "q1":1 } } 我的功能添加键/值并修改结果的状态: _getValue = (id, value) => { var newObj = this.state.resul

我在做一个项目。现在,我正在对象中添加新的键/值

这是可行的,但我想知道是否有更好的方法,或者你是否有任何建议

我对ReactJS/ReactNative还是新手,对Javascript还不是100%熟练。这是我的代码:

我的对象

state = {
    result : {
        "q1":1
    }
}
我的功能添加键/值并修改
结果的状态

_getValue = (id, value) => {

    var newObj = this.state.result;
        newObj[id] = parseInt(value);

    this.setState({
        result: newObj
    }, () => {
        console.log(this.state.result)
    })
}

谢谢大家!

这应该可以

this.setState({
  result: {
     ...this.state.result,
     [id]: value
  }
});

它使用了现代/新功能,例如对象扩展(
…this.state.result
)和动态对象属性(
[id]:value

您所做的一切都很好。我建议的唯一更改是将var更改为const:)和this.state.result;将状态赋值为const{result}=this.state;不是每次调用this.state,而是在调用非同步的setState之前直接对state.result进行变异。它可能会导致一个很难捕获的意外错误。@Dimitar他正在向现有对象添加新的键和值。不是吗?这有什么不对吗问题还(潜在地)在于,在排队的
setState()
更改生效之前,可能会有其他原因导致render同时生效(-它显示了它可能不会立即执行该操作,而是将其批处理或推迟到以后)。因此,应用程序的其他部分可能会在应该更改之前获得更改的值。执行
constresult=Object.assign({},this.state.result)是可以接受的以避免直接变异(或传播)。@他在现有对象的位置上进行了更改,该更改会发生,但会替换未更改的不变部分。这毫无意义。和设置状态应该是不可变的更新。谢谢!我知道它是关于不可变状态的。我不知道我为什么这么做。。。我在另一个组件中做了正确的事情,但我完全忘记了:-)