在未渲染的对象上反应调用函数

时间:2017-11-30 17:11:22

标签: reactjs

我正在使用迷宫生成器,从构造函数

调用以下函数
  generateMaze(size){
    var maze = new Array(size);
    var oldrow = new Array(size);

    for(var i = 0; i < size; i++){
      oldrow[i] = <Cell group="0"></Cell>;
      if(i == 0){
        oldrow[i].setLeft(true);
      }else if(i == size - 1){
        oldrow[i].setRight(true);
      }
    }
    //snipped
}

Cell class:
class Cell extends Component{
  constructor(props){
    super(props);
    this.state = {
      group : this.props.group,
      top : false,
      bottom : false,
      left : false,
      right : false
    };
  }
  group(){return this.state.group;}
  right(){return this.state.right;}
  left(){return this.state.left;}
  bottom(){return this.state.bottom;}
  top(){return this.state.top;}
  setLeft(value){
    this.setState({left : value});
  }
}

这导致TypeError:oldrow [i] .setLeft不是函数 我怎么解决这个问题?

1 个答案:

答案 0 :(得分:1)

这不会起作用,因为你混淆了。

你应该首先生成迷宫(使用数组和对象以及你需要的任何东西)。

然后你应该将生成的迷宫传递给一个可以解释迷宫并渲染细胞和所有东西的组件。