我正在尝试在 react-native-swiper 中做一个简单的地图。所以我用这个:
const onlyOneObservation = [...new Array(pagesCount + 1)].map(([key, idx], i) => this.renderPage(key, idx, i))
但是有了这个,我得到了这个错误:
解构不可迭代实例的无效尝试
经过研究,我不知道问题出在哪里。
我正在尝试在 react-native-swiper 中做一个简单的地图。所以我用这个:
const onlyOneObservation = [...new Array(pagesCount + 1)].map(([key, idx], i) => this.renderPage(key, idx, i))
但是有了这个,我得到了这个错误:
解构不可迭代实例的无效尝试
经过研究,我不知道问题出在哪里。
...
运算符解构现有对象/数组并创建具有相同属性和值的新对象/数组。例如:
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))]
应该可以工作,或者只是取出数组声明。