具有一个值的setState如何工作?

Apa*_*ear 1 javascript state node.js reactjs reactjs-flux

我在使用npm包React-Select时浏览了一些代码

有趣的是,我看到setState被这样使用:

handleSelectChange (value) {
        console.log('You\'ve selected:', value);
        this.setState({ value });
    },
Run Code Online (Sandbox Code Playgroud)

setState如何这样工作?它只提供一个价值?我之所以问是因为我可能想从输入中捕获一件事然后进行更改。但这不能按预期工作。

handleSelectChange (value) {
        console.log('You\'ve selected:', value);
        this.setState({ value.name });
    },
Run Code Online (Sandbox Code Playgroud)

完整的代码在这里,它很短:https : //github.com/JedWatson/react-select/blob/master/examples/src/components/Multiselect.js

Tha*_*you 5

在ES6中使用时

this.setState({ value })
Run Code Online (Sandbox Code Playgroud)

这只是的简写

this.setState({ value: value })
Run Code Online (Sandbox Code Playgroud)

这里没有其他神奇的事情发生


为了更清楚,请考虑以下示例

this.setState({ value })
Run Code Online (Sandbox Code Playgroud)


如果您想要将状态value.name设置为,则仍然必须调用必须设置的键时,将无法使用速记value

this.setState({ value: value.name })
Run Code Online (Sandbox Code Playgroud)