解构不可迭代实例的无效尝试

Invalid attempt to destructure non-interable instance

我正在尝试在 react-native-swiper 中做一个简单的地图。所以我用这个:

const onlyOneObservation = [...new Array(pagesCount + 1)].map(([key, idx], i) => this.renderPage(key, idx, i))

但是有了这个,我遇到了这个错误:

Invalid attempt to destructure non-iterable instance

研究了一下,不知道是哪里出了问题。

... 运算符解构一个 现有的 对象/数组,并创建一个具有相同属性和值的新对象/数组。例如:

let obj = {
  val1: 'value1',
  val2: 2
}
let obj2 = { ... obj };
console.log(obj2); // will log: { val1: 'value', val2: 2 };

但是您所做的是:[...new Array(pagesCount+1)]。这里有2个问题:

  1. 为什么还要解构?为什么不直接做 (new Array(pagesCount+1)).map( /*code */)?

  2. 我的猜测是它试图在构建数组之前解构它,或者可能试图将 ... 运算符应用于 new 关键字,尽管我不确定它里面到底发生了什么。无论如何,如果你真的需要这种解构(同样,不明白为什么),我很确定 [...(new Array(pagesCount+1))] 应该可以工作,或者只是取出数组声明。