具有一个值的 setState 如何工作?
How setState with one value work?
我在使用 npm 包时查看了一些代码 React-Select
有趣的是,我看到 setState 被这样使用:
handleSelectChange (value) {
console.log('You\'ve selected:', value);
this.setState({ value });
},
setState 是如何工作的?它只提供一个值?我问是因为我想从我的输入中捕捉一件事然后改变它。但这并不像预期的那样有效。
handleSelectChange (value) {
console.log('You\'ve selected:', value);
this.setState({ value.name });
},
完整代码在这里,相当短:https://github.com/JedWatson/react-select/blob/master/examples/src/components/Multiselect.js
在 ES6 中使用时
this.setState({ value })
只是一个shorthand
this.setState({ value: value })
这里没有其他神奇的事情发生
为了更清楚,考虑这个例子
var x = 5
var y = 10
var z = { x, y }
console.log(z)
//=> { x: 5, y: 10 }
如果您想将状态设置为 value.name
如果您必须设置的密钥仍被称为 value
[=16=,则您将无法使用 shorthand ]
this.setState({ value: value.name })
这是 ES2015 的特性,the property name shorthand。它使您在为同名变量赋值时无需键入键的名称。
我在使用 npm 包时查看了一些代码 React-Select
有趣的是,我看到 setState 被这样使用:
handleSelectChange (value) {
console.log('You\'ve selected:', value);
this.setState({ value });
},
setState 是如何工作的?它只提供一个值?我问是因为我想从我的输入中捕捉一件事然后改变它。但这并不像预期的那样有效。
handleSelectChange (value) {
console.log('You\'ve selected:', value);
this.setState({ value.name });
},
完整代码在这里,相当短:https://github.com/JedWatson/react-select/blob/master/examples/src/components/Multiselect.js
在 ES6 中使用时
this.setState({ value })
只是一个shorthand
this.setState({ value: value })
这里没有其他神奇的事情发生
为了更清楚,考虑这个例子
var x = 5
var y = 10
var z = { x, y }
console.log(z)
//=> { x: 5, y: 10 }
如果您想将状态设置为 value.name
如果您必须设置的密钥仍被称为 value
[=16=,则您将无法使用 shorthand ]
this.setState({ value: value.name })
这是 ES2015 的特性,the property name shorthand。它使您在为同名变量赋值时无需键入键的名称。