Вместо вызова 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
необходимо выполнить асинхронные вызовы перед отправкой, то вы можете либо вернуть обещание и await
его в listenForMessages
, либо превратить его в создателя асинхронных действий, точно так же, как ваш listenForMessages
, тогда вы можете отправьте его точно так же: dispatch(helpers.updateListening(true))
.