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

时间:2018-12-17 17:24:50

标签: reactjs

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

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)
    }

这是应该返回新数组的函数:

//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'”

let imageList = this.state.imageList;

我在做什么错了?

谢谢

1 个答案:

答案 0 :(得分:-1)

因此,您似乎尚未在构造函数中初始化本地状态。如果要在组件中使用状态,则需要在构造函数中初始化状态

constructor(props) {
  super(props);
  this.state = { 
    imageList: [card1, card2, card3, card4, card5, card6],
    board: this.chooseImages(2,2)
  }
}

在构造函数中没有初始化状态的情况下,您将无法从组件的状态访问它。就像Sameer所说的那样,您需要使用let声明它