我希望能够在 React 中更新状态时使用子键的计算值。
我了解如何在这样的简单设置中使用计算值:
this.setState({ [name]: value });
但是我无法让键值计算在这样的情况下工作:
constructor(props) {
super(props);
this.state = {
foo: { a: 1, b: 2 }
};
}
const keyToChange = 'a';
const value = 3;
this.setState({ foo[keyToChange]: value });
我怎样才能做一些像
this.setState({ foo.a: value });
但是,这里a
可以是一个计算的值?
我尝试了以下方法,但似乎不起作用:
const subKeyName = 'a';
// Doesn't work
const nameOfKey = 'foo.' + subKeyName;
this.setState({ [`${nameOfKey}`]: value });
// Doesn't work
this.setState({ foo[subKeyName]: value });