Reactjs (事件:MouseEvent<;元素,MouseEvent>;)=>;无效';不可分配给类型';()=>;事件';
这看起来很简单,但我不能处理这个问题 我总是在控制台中收到相同的消息: 类型错误:Type'(事件:MouseEvent)=>void'不可分配给类型'()=>event'。TS2322 这是我的代码: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()}></
//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
}