Javascript 错误问题:失败的道具类型:道具'onClick'在'Letter'中标记为必需,但其值为'undefined'`

Javascript 错误问题:失败的道具类型:道具'onClick'在'Letter'中标记为必需,但其值为'undefined'`,javascript,reactjs,Javascript,Reactjs,我是新手,所以出于教育目的,我正在制作一个刽子手游戏。但是我遇到了一个问题,从下面的代码片段来看,onclick事件无法识别为函数。我认为这个问题可能是由于使用不当造成的,但这只是一个假设 定义 const Letter = ({ index, letter, onClick }) => ( <div className={`letter`} onClick={() => onClick(index)}> <button > {lett

我是新手,所以出于教育目的,我正在制作一个刽子手游戏。但是我遇到了一个问题,从下面的代码片段来看,onclick事件无法识别为函数。我认为这个问题可能是由于使用不当造成的,但这只是一个假设

定义

const Letter = ({ index, letter, onClick }) => (
  <div className={`letter`} onClick={() => onClick(index)}>
    <button >
      {letter}
    </button>
  </div>
)
渲染部分

ALPHABET.map((letter, index) => (
    <Letter
      letter={letter}
      index={index}
      key={index}
      onClick={this.addLetter(letter,usedLetters)}
    />
问题在于:

onClick={this.addLetter(letter,usedLetters}
组件呈现后,您将立即调用该函数

假设您正在定义一个类组件,并且addLetter是其中的一个箭头函数,如下所示:

addLetter = (letter, usedLetters) => {
  ...
}
您可以将onClick属性修改为该属性,它仍然需要默认定义的参数

onClick={this.addLetter}
此外,您从未将Usedletter作为属性传递给Letter


谢谢,它解决了我的问题。我能更好地理解语法,因为它可能与
<Letter
  letter={letter}
  usedLetters={usedLetters}
  index={index}
  key={index}
  onClick={this.addLetter(letter,usedLetters)}
/>