Reactjs (事件:MouseEvent<;元素,MouseEvent>;)=>;无效';不可分配给类型';()=>;事件';

Reactjs (事件:MouseEvent<;元素,MouseEvent>;)=>;无效';不可分配给类型';()=>;事件';,reactjs,typescript,Reactjs,Typescript,这看起来很简单,但我不能处理这个问题 我总是在控制台中收到相同的消息: 类型错误:Type'(事件:MouseEvent)=>void'不可分配给类型'()=>event'。TS2322 这是我的代码: //in one class //some code render() return ( <div className={keyStyle} key={key} onClick={() => this.props.turnKey()}></

这看起来很简单,但我不能处理这个问题 我总是在控制台中收到相同的消息:

类型错误:Type'(事件:MouseEvent)=>void'不可分配给类型'()=>event'。TS2322

这是我的代码:

//in one class  
//some code 
render() 
    return (
        <div className={keyStyle} key={key} onClick={() => this.props.turnKey()}></div>
    )

//in other classs
//some code
    return (
       <div className="container">
          <Display />
          <Keys turnKey={this.activateKey}/>
       </div>
    );
  }

  activateKey = (event : React.MouseEvent): void =>{
      console.log(event.target);
  }
//在一个类中
//一些代码
render()
返回(
this.props.turnKey()}>
)
//在其他班级
//一些代码
返回(
);
}
activateKey=(事件:React.MouseEvent):void=>{
console.log(event.target);
}

如何解决此错误?

您没有将
事件
(这是必要的)传递给您的
this.props.turnKey
。 我建议您按原样通过
此.props.turnKey

<div className={keyStyle} key={key} onClick={this.props.turnKey}>
而不是

turnKey: (event: React.MouseEvent) => void

关于event.target:TS2532:对象可能“未定义”的问题

您可以将目标声明为htmldevelment。 因此


应该这样做。

你能澄清哪个组件包括哪个组件吗?我这样做了,然后我从activateKey()函数中删除了参数,但我现在遇到了新的事件问题。目标:TS2532:对象可能是“未定义的”。我尝试使用if(event.target!==未定义)。。。还是不行
turnKey: (event: React.MouseEvent) => void
  activateKey = (event : React.MouseEvent): void =>{
    const clickedElement = event.target as HTMLDivElement;
    console.log(clickedElement.value); // ot whatever you need
  }