Javascript ReactJS和setState语法
我正在尝试理解React应用程序中的以下语法。本质上,我想理解setState()中的代码 我所期待的是这样的语法Javascript ReactJS和setState语法,javascript,reactjs,ecmascript-6,es6-promise,Javascript,Reactjs,Ecmascript 6,Es6 Promise,我正在尝试理解React应用程序中的以下语法。本质上,我想理解setState()中的代码 我所期待的是这样的语法 this.setState(prevState => { // some code }) 但是紧跟在prevState=>之后的圆括号让我感到困惑。ES6箭头使用隐式返回语法,允许跳过返回关键字。这是隐式返回的对象: this.setState(prevState => ({ ...prevState, doggo: someImg.messa
this.setState(prevState => {
// some code
})
但是紧跟在
prevState=>
之后的圆括号让我感到困惑。ES6箭头使用隐式返回语法,允许跳过返回
关键字。这是隐式返回的对象:
this.setState(prevState => ({
...prevState,
doggo: someImg.message
}))
这是显式返回的快捷方式:
this.setState(prevState => {
return {
...prevState,
doggo: someImg.message
}
})
这是作为新状态返回的对象文本:
{
...prevState,
doggo: someImg.message
}
不使用
(…)
括号将导致语法错误,因为对象文字中的大括号将被解析为函数括号。const foo=()=>{}
withfoo()//返回未定义的
,而不是const bar=()=>({})withbar(
)//返回一个空对象{}
和@adiga的可能重复项当您有更多需要评估的业务逻辑时,您应该在arrow函数中使用return。如果你所做的只是立即返回一些东西,那么你可以使用速记返回方法。非常感谢…这真的很有帮助…只是一个简单的问题…prevState代表什么?它是否表示ES6 REST/Spread运算符语法?这是ES2018对象Spread,它是prevState
对象的浅层副本。这是Object.assign({},prevState)
{
...prevState,
doggo: someImg.message
}