ts寫react useContext和useReduce,怎麼寫dispatch的型別?

時間 2021-07-13 09:40:09

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>

onClick

=)}>

++button

>React.Fragment

>)}export

const

HOCWithTest

=providerHoc

(reducer

,initialState

)(Test)

什麼是TS16949 關於TS16949的五大工具的學習如何展開?最好能推薦一些資料

八一 講講我的經歷吧,剛畢業也是什麼都不懂,身為寧波土著,自然而然就進去汽車零部件廠家,第一次接觸五大工具,16949體系,看的雲裡霧裡。後來就是在實際工作中慢慢的接觸這些檔案,親自做這些檔案,慢慢的好像懂了點。一干就幹了5年,然後美國辦事處幹了SDE一年,現在幹了3年採購,老人一枚。不過呢,手上積...

怎麼評價TS戰隊

授衣初四 瀉藥ts。怎麼說呢,他們讓我想起來我看球時候的馬刺隊,沒有超級出名的大明星,唯一乙個稍有名氣的就是暖陽了,但這支隊伍五個人一起發力,可以絆倒很多強隊,這次也成功進到了總決賽,對手是AG,你品,是不是有當年AS仙閣那味兒了! 秋末涼雨 黑馬戰隊,雖然隊內只有暖陽一名明星選手,但發揮穩定,這個...

只會ts不會js是什麼體驗?

OhYee 先寫個ts,把字尾名改成js,刪掉所有和型別相關的東西 可以對著報錯刪 恭喜你學會了js。如果真要說不會js,我能想到的是ts可以限定某個變數只能是1,2,3,4,5在。而js只能是數字。寫的時候,前者可以直接看補全就知道可以填啥,後者就得去扒文件看看到底都能是啥了 傳統圖形程式設計師來...