如何在React中按值设置State?

时间:2015-04-21 15:46:18

标签: javascript reactjs

如果我有属性的名称,是否有更简单的更新状态的方法?比这更简单的东西:

function thingChanged(name, value) { 
  var x = {};
  x[name] = value;
  this.setState(x)
}

4 个答案:

答案 0 :(得分:3)

使用当前的ECMAScript版本无法进一步减少代码。也许使用ES6可能会有所改变,具体取决于语言的功能。

但是,如果您担心代码冗余,可以将该方法添加到混合中,并在需要的所有组件中引用它。

更新:感谢@FakeRainBrigand提供允许代码缩减的ES6语法:setState({[name]: value});

答案 1 :(得分:2)

它并不完全短,但这应该有效:

function thingChanged(name, value) { 
  this.setState(Object.defineProperty({}, name, {value:value}))
}

答案 2 :(得分:2)

ES6短片:

this.setState({...x});

this.setState({ x });

答案 3 :(得分:0)

如果您使用thingChanged函数进行双向数据绑定,LinkedStateMixin将帮助您使用更少的代码执行此操作。