具有一个值的 setState 如何工作?
Posted
技术标签:
【中文标题】具有一个值的 setState 如何工作?【英文标题】:How setState with one value work? 【发布时间】:2016-11-09 04:14:21 【问题描述】:我在使用 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
【问题讨论】:
【参考方案1】:在 ES6 中使用时
this.setState( value )
这只是一个简写
this.setState( value: value )
这里没有其他神奇的事情发生
为了更清楚,请考虑这个例子
var x = 5
var y = 10
var z = x, y
console.log(z)
//=> x: 5, y: 10
如果您想将状态设置为value.name
,如果您必须设置的键仍然称为value
,您将无法使用速记
this.setState( value: value.name )
【讨论】:
【参考方案2】:这是一个 ES2015 功能,the property name shorthand。当您为其分配同名变量的值时,它可以避免您键入键的名称。
【讨论】:
以上是关于具有一个值的 setState 如何工作?的主要内容,如果未能解决你的问题,请参考以下文章