以下两个setState有什么区别

时间:2016-12-21 06:53:48

标签: reactjs state

我对以下两种设置状态的行为感到有点困惑,任何人都可以详细说明这两种类型吗?

输入1

testFunction1(val){
    this.setState({value : val});
}

类型2

testFunction2(value){
    this.setState({value});
}

这里,

this.state={value:[]};

提前感谢。

1 个答案:

答案 0 :(得分:3)

它们实际上是相同的setState,第二个只使用ES6' s shorthand property names,其中变量名称成为属性名称,变量值成为属性值:

var a = "foo", b = 42, c = {};
var o = { a, b, c }; // o => { a: "foo", b: 42, c: {} }

所以这个:

testFunction2(value){
    this.setState({value});
}

被翻译成:

testFunction2(value){
    this.setState({ value: value });
}