学习React实战-打造画廊应用学习中遇到的问题(react组件初始化时数组生成的问题)
问题描述如下: 学习React实战-打造画廊应用课程,然后我就用create-react-app构建了项目,项目地址
https://github.com/joyjoe/gallery-by-react
现在遇到的问题是这样的,项目启动时,需要设置所有图片的初始位置状态信息。这个信息应该是一个数组,数组中的每一项都应该是一个对象,包含一个position属性。但是数组的长度是根据图片的个数确定的。于是我在gallery组件的构造函数中使用了for循环来创建数组。代码如下:
let len = imagesData.length; var arr = new Array(len); for(var i =0; i < len ; i++){ // arr.push({"position":{}}); arr[i] = {"position":{}}; } console.log("arr"); console.log(arr); this.state={ "imagePosDataArr": arr };
其中 imagesData是从Json文件中加载而成的一个数组对象。
运行之后,我发现arr打印出来时,其中会有几个元素又是一个array类型对象。
我就很纳闷了。这是为什么呢?为什么这里会出现数组的嵌套呢?
自己对比了一部分代码,发现可能的原因应该是我在render函数中操作了this.state.imagePosDataArr对象,然后就会发现arr数组有嵌套。 于是,我在render函数中删掉与state有关的代码,再看结果,发现arr数组没有嵌套了。 不知道这是为什么?