使用ES6和React对Array进行解构和重新排序

Gio*_*tta 3 javascript arrays ecmascript-6 reactjs

我想使用一个解构解决方案来重新排序我的React容器中的数组,这应该是非常简单的.给定一个数组a1 = ['hello', 'hi', 'hola']

componentDidMount() {
  const { a1 } = this.props
  this.a2 = []
  [a2[2], a2[0], a2[1]] = a1  --> this line give an error!!
  console.log('new ordered array', a2) // ['hola', 'hello', 'hi'] --> this print properly my new array
}
Run Code Online (Sandbox Code Playgroud)

如果我尝试控制日志或在渲染中使用它我得到了undefined 我在该行得到的错误是:

Uncaught (in promise) TypeError: Cannot set property '#<Object>' of undefined

我真的不明白为什么我可以正确地打印值,console.log但当我尝试在代码中实际使用它时它不起作用.它可能与React循环相关吗?我也尝试在我的州内使用它但得到了同样的错误.

dfs*_*fsq 5

此行会给您一个错误,因为这是自动分号插入让您失望的极少数情况之一.不要开始新行([],否则解释认为,作为前行的延续和对待[(财产访问操作或函数调用.

这将有效:

this.a2 = [];
[a2[2], a2[0], a2[1]] = a1
Run Code Online (Sandbox Code Playgroud)

或这个:

this.a2 = []
;[a2[2], a2[0], a2[1]] = a1
Run Code Online (Sandbox Code Playgroud)