0

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

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

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

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

经过研究,我不知道问题出在哪里。

4

1 回答 1

1

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

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))]应该可以工作,或者只是取出数组声明。

于 2019-08-12T08:16:31.483 回答