4 回答

TA貢獻1772條經(jīng)驗 獲得超5個贊
thunk的意思是中間函數(shù),在redux中,有個東西叫做action,如果配置了redux-thunk,那么在action中寫代碼的時候,就可以寫成下面這種形式:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | function saveData(data) { return { type: 'SVAE_DATA', date: data } }
exports function getData(){ return async (dispatch) => { const data = await get(`/api`) if (result) { await dispatch(saveData(data)) } } } |
在這個例子中,saveData就是一個thunk,getData的作用是接收服務端返回的數(shù)據(jù),然后通過thunk函數(shù)去調用對應的reducers保存到store上。dispatch就是負責調用thunk函數(shù)

TA貢獻1848條經(jīng)驗 獲得超10個贊
thunk的意思是中間函數(shù),在redux中,有個東西叫做action,如果配置了redux-thunk,那么在action中寫代碼的時候,就可以寫成下面這種形式:
function saveData(data) {
return {
type: 'SVAE_DATA',
date: data
}
}
exports function getData(){
return async (dispatch) => {
const data = await get(`/api`)
if (result) {
await dispatch(saveData(data))
}
}
}
在這個例子中,saveData就是一個thunk,getData的作用是接收服務端返回的數(shù)據(jù),然后通過thunk函數(shù)去調用對應的reducers保存到store上。dispatch就是負責調用thunk函數(shù)

TA貢獻1845條經(jīng)驗 獲得超8個贊
執(zhí)行階段
dispatch(action) 等于 composedABC(action) 等于執(zhí)行 function A(action) {...}
在函數(shù) A 中執(zhí)行 next(action), 此時 A 中 next 為 composedBC,那么等于執(zhí)行 composedBC(action) 等于執(zhí)行function B(action){...}
在函數(shù) B 中執(zhí)行 next(action), 此時 B 中 next 為 composedC,那么等于執(zhí)行 composedC(action) 等于執(zhí)行function C(action){...}
在函數(shù) C 中執(zhí)行 next(action), 此時 C 中 next 為 store.dispatch 即 store 原生的 dispatch, 等于執(zhí)行store.dispatch(action)
store.dispatch 會執(zhí)行 reducer 生成最新的 store 數(shù)據(jù)
所有的 next 執(zhí)行完過后開始回溯
執(zhí)行函數(shù) C 中 next 后的代碼
執(zhí)行函數(shù) B 中 next 后的代碼
執(zhí)行函數(shù) A 中 next 后的代碼
整個執(zhí)行 action 的過程為 A -> B -> C -> dispatch -> C -> B -> A

TA貢獻1951條經(jīng)驗 獲得超3個贊
thunk的意思是中間函數(shù),在redux中,有個東西叫做action,如果配置了redux-thunk,那么在action中寫代碼的時候,就可以寫成下面這種形式:
function saveData(data) {
return {
type: 'SVAE_DATA',
date: data
}
}
exports function getData(){
return async (dispatch) => {
const data = await get(`/api`)
if (result) {
await dispatch(saveData(data))
}
}
}
在這個例子中,saveData就是一個thunk,getData的作用是接收服務端返回的數(shù)據(jù),然后通過thunk函數(shù)去調用對應的reducers保存到store上。dispatch就是負責調用thunk函數(shù)
- 4 回答
- 0 關注
- 941 瀏覽
添加回答
舉報