开发者问题收集

使用 ES6 和 React 解构和重新排序数组

2017-08-17
333

我想使用解构解决方案来重新排序 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
}

如果我尝试控制台记录或在渲染中使用它,我会得到 undefined 我在那一行得到的错误是:

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

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

2个回答

此行会出错,因为这是自动插入分号让您失望的罕见情况之一。切勿使用 ([] 开始新行,否则解释器会将其视为上一行的延续,并将 [( 视为属性访问操作或函数调用。

这将有效:

this.a2 = [];
[a2[2], a2[0], a2[1]] = a1

或者这样:

this.a2 = []
;[a2[2], a2[0], a2[1]] = a1
dfsq
2017-08-17

此行中有一个 . 而不是 , [a2[2], a2[0]. a2[1]] = a1 --> 此行给出错误!!

Saravanan I
2017-08-17