gpt4 book ai didi

javascript - React Redux 中 Action 函数的用途是什么?它们都应该返回一个发送到存储/中间件的操作或函数吗?

转载 作者:行者123 更新时间:2023-12-03 06:16:45 25 4
gpt4 key购买 nike

react redux reddit app example #shouldFetchPosts 应该成为操作的一部分吗?看起来很奇怪,它更像是一个助手,而不是一个实际的操作,它应该返回一个被分派(dispatch)到商店的对象。我知道操作可以包括用于将异步相关内容发送到中间件的函数,但 #shouldFetchPosts 似乎不适合此目的,也不适合传统操作之一。有没有更好的方法来组织这个功能?难道一开始就不应该将其抽象出来吗?

function fetchPosts(reddit) {
return dispatch => {
dispatch(requestPosts(reddit))
return fetch(`https://www.reddit.com/r/${reddit}.json`)
.then(response => response.json())
.then(json => dispatch(receivePosts(reddit, json)))
}
}

function shouldFetchPosts(state, reddit) {
const posts = state.postsByReddit[reddit]
if (!posts) {
return true
}
if (posts.isFetching) {
return false
}
return posts.didInvalidate
}

export function fetchPostsIfNeeded(reddit) {
return (dispatch, getState) => {
if (shouldFetchPosts(getState(), reddit)) {
return dispatch(fetchPosts(reddit))
}
}
}

最佳答案

不错的收获。是的,你是对的! shouldFetchPosts 不是一个操作。这是一个辅助函数。它首先不应该与 Action 创建者放在一起。人们可能会认为 redux 示例有很大的改进空间。但从好的方面来看,这也是学习东西的好方法。您在他们的代码中发现了一个错误。您应该继续在示例项目中纠正它。

关于javascript - React Redux 中 Action 函数的用途是什么?它们都应该返回一个发送到存储/中间件的操作或函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39071803/

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