![](/img/trans.png)
[英]How to update a variable that depends on another variable in a function?
[英]redux - when a resource depends on another, how to update them appropriately
假设我有一个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()));
});
}
};
您的减少购买量功能可以“监听”某些特定用户的操作类型,例如fe FETCH_USER_SUCCESS,然后直接在其中更新该资源。
对不起我的英语不好。
我认为您必须向用户传递购买详细信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.