【发布时间】:2017-10-12 21:54:31
【问题描述】:
我有一个反应组件,我试图将对象传播到构造函数中的状态中。
constructor() {
super()
const shapesArray = [1, 2, 3]
let renderStates = shapesArray.map((el, i) => {
return {['shape'+i]: 'black'}
})
this.state = { ...renderStates }
console.log(this.state)
}
我想通过this.state.shape0 访问颜色,
但是当我控制台日志this.state 时,我得到了这个:
而不是Object {shape0: "black", shape1: "black", shape2: "black"}。
我在这里做错了什么?
【问题讨论】:
-
你没有在数组文字中使用扩展语法???那应该是 ES6 中的语法错误(也许你启用了一些实验性的 babel 东西)
-
顺便说一句,对于形状集合等索引值,您应该始终使用对象。
-
您的
renderStates是一个数组。你不应该使用[...renderStates]吗?
标签: javascript reactjs ecmascript-6 babeljs spread-syntax