首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >TypeError:无法读取未定义的属性“”imageList“”

TypeError:无法读取未定义的属性“”imageList“”
EN

Stack Overflow用户
提问于 2018-12-18 01:24:50
回答 1查看 174关注 0票数 0

我正在尝试从在state中定义的图像数组中获取图像的随机列表。

代码语言:javascript
复制
import React, { Component } from 'react';
import card1 from '../graphics/card1.jpg';
import card2 from '../graphics/card2.jpg';
import card3 from '../graphics/card3.png';
import card4 from '../graphics/card4.jpg';
import card5 from '../graphics/card5.png';
import card6 from '../graphics/card6.png';

class BoardGame extends Component {
    state = { 
        imageList: [card1,card2,card3,card4,card5,card6],
        board: this.chooseImages(2,2)
    }

这是假设返回新数组的函数:

代码语言:javascript
复制
//choose random images at half size of board
        let data=[];
        let selectedImage;
        let imageList = this.state.imageList;
        const numOfPics=(rows*columns)/2;
        for(let i=0;i<numOfPics;i++){
           selectedImage = imageList[Math.floor(Math.random()*imageList.length)]
            data.push(selectedImage,selectedImage);
        }
        data=this.shuffleImageList(data);
        return data;
    }

'TypeError:无法读取未定义‘错误点的属性'imageList’

代码语言:javascript
复制
let imageList = this.state.imageList;

我做错了什么?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2018-12-18 03:47:55

所以看起来你还没有在构造器中初始化本地状态。如果在组件中使用状态,则需要在构造函数中初始化状态

代码语言:javascript
复制
constructor(props) {
  super(props);
  this.state = { 
    imageList: [card1, card2, card3, card4, card5, card6],
    board: this.chooseImages(2,2)
  }
}

如果不在构造函数中初始化状态,则无法从组件中的状态访问它。正如Sameer所说,如果没有这个,您需要使用let声明它

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53820198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档