React.JS 组件类中的函数未定义错误

Hea*_*ank 2 javascript reactjs

我已经编写了一个带有构造函数、方法和渲染的反应组件。当我注释掉这些方法并且只有渲染和构造函数时,一切都很好,但是当我添加方法时,第一个总是未定义,除非我在构造函数之后关闭整个类。

这是我的课程(因为方法中的内容无关紧要,为了简洁起见,我只放了声明):

export default class App extends Component {

  constructor(props) {
    super(props);
    const allWords = ["word", "pipe", "dear", "deer", "fish", "coat"];
    const word= allWords[Math.floor(Math.random()*allWords.length)];
    var lettersFound = [];
    for (var i=0; i<word.length;i++) {
      lettersFound = [...lettersFound, [i, "_"]];
    }
    this.fillWord = this.fillWord.bind(this);

    this.state = {
      word: word,
      numWrongGuesses: 0,
      lettersGuessed: [],
      lettersFound: lettersFound,
      error: ""
    }
  }

  isLetterInWord = (letter) => {
  }

  fillWord = () => {
  }



  handleGuess = (letter) => {
  }

  render () {
    return (
      <div className="App">
      </div>
    );
  }

}
Run Code Online (Sandbox Code Playgroud)

这不会编译,给出错误“'isLetterInWord' 未定义”。如果我删除此函数,则会在 fillWord 上引发错误。如果我在构造函数之后添加一个“}”,则所有方法都已定义,但渲染会在返回行上引发意外的标记错误。我不明白为什么我想在构造函数之后关闭类,或者为什么它没有按原样编译。

Mat*_*ani 5

尝试像这样在构造函数中绑定函数:

this.isLetterInWord = this.isLetterInWord.bind(this);
this.fillWord = this.fillWord.bind(this)
this.handleGuess = this.handleGuess.bind(this);
Run Code Online (Sandbox Code Playgroud)