如何使用一个值来进行setState操作?

3

我在使用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
2个回答

7

在使用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 })

4

这是一个ES2015的功能,属性名缩写。当您将一个变量的值赋给同名的键时,它可以帮助您节省键名输入的时间。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接