你想用終極版,承諾中間件的「元」變量。像這樣:
return {
type: 'FETCH_USERS',
meta: { url: 'http://localhost:8080/users' },
payload: axios.get('http://localhost:8080/users', config)
}
你可以在你的params中傳遞它,但是直到頁面被提取才會被返回。這意味着它不會在FETCH_USERS_PENDING期間傳回。
而且我很確定你是否直接包含在返回對象中(比如Lucas建議的),它將被剝離出FETCH_USERS_PENDING階段。
下面是終極版,承諾中間件的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 source code如果你想進一步研究它。
在動作的頂層添加任意鍵使其不符合[符合FSA標準](https://github.com/acdlite/flux-standard-action)。 @James Rutledge的回答正確地建議將url置於'meta'鍵之下。 –