1樓:寧逍遙
// 使用 useReducer
const
[state
,dispatch]=
useReducer
((prevState:,
action:)
=>default
:return
prevState}},
)// 建立存放 dispatch 方法的 contextconst
DispatchContext
=React
.createContext
.Dispatch <>// dispatch 的型別描述 >(dispatch )// 從 context 中取出 dispatch方法, 並呼叫constdc= useContext (DispatchContext)dc ()這裡有兩個TS 導致的問題需要注意 React.createContext 在 d.ts 檔案中的宣告function )關於dispatch 型別的問題, 如果你用的開發工具是 VSCode, 那麼你可以通過滑鼠懸停在 dispatch 上獲得該方法的型別描述 2樓:登來 這種問題你都已經把關鍵字給出來了,為什麼不嘗試baidu,google下 usereducer typescriptgoogle第乙個結果就是例子 https://dev.to/stephencweiss/usereducer-with-typescript-2kf---- 更新--- 你要的是不是這個 // action-type的型別 const ADD_COUNTER ='ADD_COUNTER' // state的型別,action的型別type StateData =type CountAction =// 建立乙個同步action export const addActions:() =>CountAction=() =>()export const initialState: StateData=// reducer 的型別 type CountReducer =React .Reducer ,CountAction >export const reducer: CountReducer=(state ,action )=>default :return state}} // 建立上下文例項 export const ProviderContext: Context< >=createContext ()// 高階元件,給函式元件注入上下文 export const providerHoc=( reducer: CountReducer,initialState: StateData)=> (Com: React.FC )=>}> ProviderContext.Provider>)} }function Test(): JSX. Element =useContext (ProviderContext )console .log (state )return ( >h2>