Guy*_*Guy 4 ecmascript-6 reactjs
为什么这样有效:
return elements.map((e)=> {return Object.assign({}, e, {selected:true})});
Run Code Online (Sandbox Code Playgroud)
但这不是:
return elements.map((e)=> {...e, {selected: true}});
Run Code Online (Sandbox Code Playgroud)
?
ES6/Babel/React的新手,怜悯.
更新:移动到此(如建议):
return elements.map(e => ({...e, selected: true }));
Run Code Online (Sandbox Code Playgroud)
虽然传播在项目的其他地方工作:
return [
...state,
element(undefined, action)
]
Run Code Online (Sandbox Code Playgroud)
And*_*y_D 14
从箭头函数隐式返回一个对象应该包含在parens中,这样解释器就知道它不是一个块.
所以 return elements.map(e => ({...e, selected: true }));
还修复了selected属性的语法,它不应该像azium指出的那样用括号括起来.
请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions
您意外的令牌错误可能是由于babel不支持建议的对象传播.数组传播是es6.使用下面的答案中的插件将解决此问题.包含对象传播的首选方法是babel阶段0,因为您还可以获得其他很酷的功能,例如::绑定运算符.对象传播是第2阶段,因此如果您不想包含阶段1和0,也可以使用它.
https://babeljs.io/docs/plugins/preset-stage-0/
| 归档时间: |
|
| 查看次数: |
2229 次 |
| 最近记录: |