reactjs - React güncellemesinden sonra useReducer hook'u 3 argüman gerektiriyor
React ve @types/react sürümünü 16.9.0 olarak güncellerken bir sorunla karşılaştım (daha fazla yükseltirsem de bu sorun devam ediyor). Şunu söylüyor: 3 argüman bekleniyor, ama 2 verildi.
Kod :
const [state, dispatch] = React.useReducer<State<D>, Action<D>>(reducer, {
loading: false,
data: undefined,
error: undefined
});
Üçüncü argümanın ne olduğunu bulmaya çalıştım, ama sadece isteğe bağlı olduğunu gördüm. Belki birinin aynı sorunu olmuştur?
Cevap #1
Bu, State<D>, Action<D> türü değişkenler olmadan tanımlanmalıdır:
const [state, dispatch] = React.useReducer(reducer, {
loading: false,
data: undefined,
error: undefined
});
Cevap #2
Hâlâ tür değişkenlerini kullanabilirsiniz.
React 3 argüman bekliyor çünkü tip tanımında sadece reducer fonksiyon tanımını vermen gerekiyordu.
interface stateInterface {
loading: boolean,
data: undefined | string,
error: undefined | string,
}
function reducer(state: stateInterface, action: string): stateInterface {
return // your reducer defintion here
}
const [state, dispatch] = React.useReducer<(state: stateInterface, action: string) => stateInterface>(reducer, {
loading: false,
data: undefined,
error: undefined
});
