gpt4 book ai didi

javascript - 具有依赖关系的多个调用 redux-thunk

转载 作者:行者123 更新时间:2023-12-03 13:37:53 25 4
gpt4 key购买 nike

问题:

我使用redux-thunk我想收到帖子。要接收帖子,我需要获得用户。所以我对我的thunk有疑问,在一个thunk中获取所有数据是否正确,如果不是如何将其拆分为两个thunk?

Thunk 示例:

export default group_id => {
return async dispatch => {
const users = await API.get(`/users?group_id=${group_id}`) // get users
const posts = await axios.all([...getPosts(users)]) // get all posts by user ids
dispatch(loadUsersAction(users))
dispatch(loadPostsAction(posts))
}
}

最佳答案

根据您的要求,可能有多种方法。

如果目的是首先加载用户,然后加载他们的帖子,我会首先调用 /users,然后调度另一个操作创建者来获取他们的 /posts 。因为将它们放在一起会让用户等待 UI 中的某些更改(例如:加载微调器)的时间更长,因此我会将它们分成两个单独的操作。

export function getUsers(group_id) => {
return async dispatch => {
const users = await API.get(`/users?group_id=${group_id}`);
dispatch(loadUsersAction(users));
return users;
};
};

export function getPostForGroupUsers (group_id) => {
return async dispatch => {
const users = await dispatch(getUsers(group_id));
const posts = await axios.all([...getPosts(users)]);
dispatch(loadPostsAction(posts));
return posts;
}
}

// or just call users, dispatch and get them from store

export function getPostForAllUsers () => {
return async dispatch => {
// this depends on your implementation
const users = getFromReduxStore('users');
const posts = await axios.all([...getPosts(users)]);
dispatch(loadPostsAction(posts));
return posts;
}
}

也许您可以提供更多有关您的案例的详细信息,然后我可以给出更准确的答复。

关于javascript - 具有依赖关系的多个调用 redux-thunk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59811244/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com