[英]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.