[英]React TS - Type '() => Promise<void>' is not assignable to type 'EventHandler<ClickEvent, boolean | void>'
我有一个组件,它有onClick
道具。
我正在向它传递一个异步处理程序,并收到错误:
类型 '() => Promise' 不可分配给类型 'EventHandler<ClickEvent, boolean | 无效>'。 类型“Promise”不可分配给类型“boolean | 空白'。 类型“Promise”不可分配给类型“void”.ts(2322)
代码
onClick={async () => {
await item.onClick();
menuRenderParams.closeMenu();
}}
我尝试使用命名处理程序_onClick
并指定返回类型,但它不起作用。
在使用命名处理程序时,我尝试提供如下处理程序类型: _onClick: EventHandler
但收到此错误:
通用类型“EventHandler”需要 1 个类型参数。
我四处寻找 typescript promise 处理程序类型,但没有找到任何东西。
"strict": false
,但编译仍然失败。 如果你能帮助我理解这一点,那也将是 gr8。这会很好,我认为你的类型不正确。
看看这段代码:
type SomeFunc = () => Promise<string>
const func: SomeFunc = () => {
return new Promise<string>((resolve, reject) => resolve("someinfo"));
};
<div
onClick={async (event: MouseEvent) => {
event.preventDefault();
const result = await func();
console.log(result);
}}
></div>
它工作正常,请在此处分享您的类型。 确保您已从 react 导入MouseEvent
类型
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.