亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Redux thunk - 嵌套分派的函數/動作

Redux thunk - 嵌套分派的函數/動作

RISEBY 2021-12-23 10:52:09
我正在使用 redux-thunk 在我的 React 應用程序中執行異步操作,如下所示:export const fetchImages = (objects) => dispatch => {   const promises = objects.map(obj => axios       .get(`${API_URL}/files/${obj.img ? vendor.img : 'default.png'}`, {responseType: 'arraybuffer'})       .then( res => obj.imgData = 'data:;base64,' + convertArrayBufferToBase64(res.data))   );   return Promise.all(promises).then (() => Promise.resolve(objects));}當我在我的任何組件中使用它時,這完全正常。但是,如果我在另一個動作中使用它,如下所示:export const fetchAllObjects = () => dispatch => axios.get(`${API_URL}/objects?limit=50`)   .then(res => fetchImages(res.data.docs).then(objects =>        dispatch({           type: FETCH_ALL_OBJECTS,           payload: objects       });   ));它失敗。我希望它返回一個承諾,但是它返回“dispatch => ...”,因此then()返回值失敗。
查看完整描述

1 回答

?
斯蒂芬大帝

TA貢獻1827條經驗 獲得超8個贊

我剛剛注意到這fetchImages是一個返回函數的函數:


export const fetchAllObjects = () => dispatch => axios.get(`${API_URL}/objects?limit=50`)

   .then(res => fetchImages(res.data.docs)(dispatch).then(objects => 

       dispatch({

           type: FETCH_ALL_OBJECTS,

           payload: objects

       });

   ));


查看完整回答
反對 回復 2021-12-23
  • 1 回答
  • 0 關注
  • 133 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號