为了账号安全,请及时绑定邮箱和手机立即绑定

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 关注
  • 115 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信