解构不可迭代实例的无效尝试
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个问题:
为什么还要解构?为什么不直接做 (new Array(pagesCount+1)).map( /*code */)?
我的猜测是它试图在构建数组之前解构它,或者可能试图将 ...
运算符应用于 new
关键字,尽管我不确定它里面到底发生了什么。无论如何,如果你真的需要这种解构(同样,不明白为什么),我很确定 [...(new Array(pagesCount+1))]
应该可以工作,或者只是取出数组声明。
我正在尝试在 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个问题:
为什么还要解构?为什么不直接做 (new Array(pagesCount+1)).map( /*code */)?
我的猜测是它试图在构建数组之前解构它,或者可能试图将
...
运算符应用于new
关键字,尽管我不确定它里面到底发生了什么。无论如何,如果你真的需要这种解构(同样,不明白为什么),我很确定[...(new Array(pagesCount+1))]
应该可以工作,或者只是取出数组声明。