【发布时间】:2017-06-20 03:45:24
【问题描述】:
假设我有一个这样的 redux 状态树:
{
user: null,
purchases: [],
}
购买属于用户,所以我总是想在用户更新时更新购买(尽管购买也可以在其他时间更新)。
如何在用户变化时保持购买的最新状态?我也许可以在动作创建器中发送购买更新以向用户更新,但是我预见到每次添加依赖于当前用户的资源时都会向 fetchUser 动作创建器添加调度,这似乎是多余的。
我当前的动作创建者的代码如下(注意我使用 thunk 中间件):
用于获取user 的动作创建者:
export const fetchUserSuccess = user => ({
type: FETCH_USER_SUCCESS,
user,
});
export const fetchUserFailure = () => ({
type: FETCH_USER_FAILURE,
});
export const fetchUser = () => {
return dispatch => {
return getLoggedInUser(resp => {
const { user } = resp;
return (
user
? dispatch(fetchUserSuccess(user))
: dispatch(fetchUserFailure())
);
});
}
};
用于获取purchases 的动作创建者:
export const fetchPurchasesSuccess = purchases => ({
type: FETCH_PURCHASES_SUCCESS,
purchases,
});
export const fetchPurchasesFailure = () => ({
type: FETCH_PURCHASES_FAILURE,
});
export const fetchPurchases = user => {
return dispatch => {
return getPurchases(user, resp => {
const { purchases } = resp;
return (
purchases
? dispatch(fetchPurchasesSuccess(purchases))
: dispatch(fetchPurchasesFailure()));
});
}
};
【问题讨论】:
-
您在
fetchPurchases响应中得到任何purchases数据吗?
标签: javascript reactjs redux