为什么我需要为React .setState()添加一组额外的括号?

Jak*_*123 3 javascript ecmascript-6 reactjs

我正在浏览React网站的"快速入门"部分,它使用的代码如下所示:

toggleClicked() {
    this.setState(prev => ({
        isOn: !prev.isOn
    }));
}
Run Code Online (Sandbox Code Playgroud)

为什么我需要功能块周围的额外括号?我认为它看起来像这样:

toggleClicked() {
    this.setState(prev => {
        isOn: !prev.isOn
    });
}
Run Code Online (Sandbox Code Playgroud)

但这不起作用.这些括号是什么意思?

Cer*_*nce 6

解释器认为{after =>是函数块的开头,而不是对象 - 所以,将它包装在括号中以清楚地表明你在那里返回一个对象,而不是定义一个函数.

this.setState(prev => ({
    isOn: !prev.isOn
}));
Run Code Online (Sandbox Code Playgroud)