我是一个仍在掌握redux的初学者,我想知道我在动作创建者中处理数据的方式是否是好的做法。
我正在构建一个从reddit获取帖子的应用程序。动作创建者fetchPosts从reddit获取数据,然后过滤掉粘贴的帖子,并限制发送到reducer的帖子数量。
export const fetchPosts = (subreddit) => async (dispatch) => {
const res = await fetchReddit.get(`/r/${subreddit}.json`);
const postsArray = res.data.data.children;
//filter out any stickied posts in array
const postsWithstickiedRemoved = postsArray.filter(post => !post.data.stickied);
dispatch({ type: FETCH_POSTS, payload: postsWithstickiedRemoved.slice(0, 21) })
}
这是一个好的做法吗?还是我应该将res.data发送到减速器并在那里进行操作?这有关系吗??
感谢
如果我们参考官方redux文档:
操作是具有类型字段的纯JavaScript对象。
因此,在您的情况下,操作是
{ type: FETCH_POSTS, payload: postsWithstickiedRemoved.slice(0, 21) }.
fetchPosts函数是一个服务,而不是一个操作,在服务中操作数据是完全可以的。