你想使用redux-promise-middleware 的“元”变量。像这样:
return {
type: 'FETCH_USERS',
meta: { url: 'http://localhost:8080/users' },
payload: axios.get('http://localhost:8080/users', config)
}
您可以在您的参数中传递它,但在获取页面之前不会返回。这意味着它不会在 FETCH_USERS_PENDING 期间传回。
而且我很确定如果您直接包含在返回对象中(就像卢卡斯建议的那样),它将被剥离出 FETCH_USERS_PENDING 阶段。
这是 redux-promise-middleware 的 FETCH_USERS_PENDING 阶段:
/**
* First, dispatch the pending action. This flux standard action object
* describes the pending state of a promise and will include any data
* (for optimistic updates) and/or meta from the original action.
*/
next({
type: `${type}_${PENDING}`,
...(data !== undefined ? { payload: data } : {}),
...(meta !== undefined ? { meta } : {})
});
正如您在此阶段所看到的,中间件返回附加的“类型”属性并检查“数据”和“元”属性。如果存在,它们将在动作中传递。
如果您想进一步研究,这里是redux-promise-middleware 源代码。