在 createAsyncThunk 中創建異步函式時嘗試為引數添加型別時遇到了一個問題:
export const setLangAsync = createAsyncThunk<
{ lang: string },
{ fileName: string },
{ getState: RootState; dispatch: AppDispatch }
>(
'i18n/setLangAsync',
async (lang: string, fileName: string, { getState, dispatch }) => {
...
}
這是錯誤:
(parameter) getState: any
Argument of type '(lang: string, fileName: string, { getState, dispatch }:
{ getState: any; dispatch: any; }) => Promise<unknown>'
is not assignable to parameter of type 'AsyncThunkPayloadCreator<
{ lang: string; }, { fileName: string; }, { getState: { i18n: I18nInterface; };
dispatch: ThunkDispatch<...> & Dispatch<...>; }>'.ts(2345)
Binding element 'getState' implicitly has an 'any' type.ts(7031
我似乎完全迷失在這里。我希望有人可以幫助我理解我做錯了什么。先感謝您!
uj5u.com熱心網友回復:
createAsyncThunk的有效載荷創建器函式接受兩個引數,而不是三個。
至于通用引數:
- 第一個是回傳型別
- 第二個是引數型別
- 第三個是各種選項
export const setLangAsync = createAsyncThunk<
WhatEverTheFunctionReturnTypeIs,
{ lang: string, fileName: string },
{ getState: RootState; dispatch: AppDispatch }
>(
'i18n/setLangAsync',
async ({ lang, fileName }, { getState, dispatch }) => {
...
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/469318.html
上一篇:如何從異步等待函式中獲取Promise<Array[]>的回傳值?
下一篇:UI僅在第二次單擊時更新
