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 上引发错误。如果我在构造函数之后添加一个“}”,则所有方法都已定义,但渲染会在返回行上引发意外的标记错误。我不明白为什么我想在构造函数之后关闭类,或者为什么它没有按原样编译。
尝试像这样在构造函数中绑定函数:
this.isLetterInWord = this.isLetterInWord.bind(this);
this.fillWord = this.fillWord.bind(this)
this.handleGuess = this.handleGuess.bind(this);
Run Code Online (Sandbox Code Playgroud)