具有动态键值的 Reactjs @setState
Reactjs @setState with a dynamic key value
我在 props 中有一个动态对象,我想在状态中发送它
@setState
key: val
values:
another_key: value
@props.data.option: @props.data.value
但是这个方法不行,我找到了这个解决方法:
newState = {}
newState[@props.data.option] = @props.data.value
this.setState(newState);
但是这种方式设置了state中的right值
这里的问题是您正在处理状态中的嵌套对象,当您似乎只想更新 values
中键的子集时,整个对象 values
被替换了目的。最好的方法是通过 set
操作使用 React 的不变性助手。 (https://facebook.github.io/react/docs/update.html).
使用es6,你可以设置一个动态键:
var update = require('react-addons-update');
var newState = update(this.state, {
values: {[dynamic_key]: {$set: dynamic_value}}
});
this.setState(newState);
我在 props 中有一个动态对象,我想在状态中发送它
@setState
key: val
values:
another_key: value
@props.data.option: @props.data.value
但是这个方法不行,我找到了这个解决方法:
newState = {}
newState[@props.data.option] = @props.data.value
this.setState(newState);
但是这种方式设置了state中的right值
这里的问题是您正在处理状态中的嵌套对象,当您似乎只想更新 values
中键的子集时,整个对象 values
被替换了目的。最好的方法是通过 set
操作使用 React 的不变性助手。 (https://facebook.github.io/react/docs/update.html).
使用es6,你可以设置一个动态键:
var update = require('react-addons-update');
var newState = update(this.state, {
values: {[dynamic_key]: {$set: dynamic_value}}
});
this.setState(newState);