我的redux助手应该如何参考调度?

阿德里安·卡罗利

我正在使用reduxredux-thunk在我的许多动作创作者中,我都使用了传递dispatch它的助手,我想知道这是不好的做法还是一种反模式,或者我是否可以避免dispatch像这样绕过去。

例如,我有一个动作创建者,如下所示:

import * from "./helpers";

export const listenForMessages = () => async (dispatch) => {
    helpers.updateListening(true, dispatch);
}

我里面有一个助手,helpers.js就像这样:

export const updateListening(isListening = false, dispatch) {
   // do something interesting
   disptach(...);
}

我想避免不得不传递调度。感觉很难看。

日武

而不是调用的dispatch(someAction)updateListening,使其返回操作对象,而不是:

export const updateListening(isListening = false) {
   // do something interesting
   return { type: SOME_ACTION, payload };
}

这使得updateListening就像任何其他动作的创造者,所以你可以派遣在调用者与行动:

export const listenForMessages = () => async (dispatch) => {
    dispatch(helpers.updateListening(true)); // or `bindActionCreators`
} 

如果updateListening需要在分派之前完成异步调用,则可以返回一个promise并将await其放入其中listenForMessages,或者将其变成与您一样的异步动作创建者listenForMessages,然后可以按照完全相同的方式进行分配:dispatch(helpers.updateListening(true))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章