【发布时间】:2020-02-21 23:14:24
【问题描述】:
当试图直接返回一个包含展开运算符的项目时,我得到一个解析错误。如果我在返回它之前将它分配给一个对象,则没有解析错误。我想知道为什么。
当我看到指向扩展运算符的解析错误时,我首先怀疑没有 ES2018,但通过一些实验我发现扩展运算符正在工作。
First WorkoutSets 就是这样定义的。
workoutSets: [ { id: 0, group: 0, repeat: 0, dist: 25, rest: 20, speed: "Easy", total: 0, notes: "" } ]
这显示了一个解析错误点...
this.state.workoutSets.map( item => { ...item, repeat: e.target.value } )})
这成功了: this.state.workoutSets.map( item => item = { ...item, repeat: e.target.value } )})
这也成功了:
this.state.workoutSets.map( item => item.group === 0 ? { ...item, repeat: e.target.value} : item)})
我只是好奇为什么第一个例子失败了。
【问题讨论】:
-
如果你打算做对象传播,并返回对象,你需要添加大括号
() => ({}),以区别() => { return 0; }一个代码块。另见Arrow functions - returning object literals
标签: javascript reactjs spread ecmascript-2018