在 Redux 中,访问 Action Creators 中的全局存储状态可能是一个有争议的话题。在这里,我们将深入研究动作创建者中状态访问的两种方法,并探讨它们的优缺点。
import store from '../store'; export function someAction() { return { type: SOME_ACTION, items: store.getState().otherReducer.items, } }
此方法直接导入商店,依赖于它是一个从模块导出的单例。虽然功能强大,但由于服务器渲染限制,每个请求通常需要单独的存储,因此不鼓励使用。
export function someAction() { return (dispatch, getState) => { const {items} = getState().otherReducer; dispatch(anotherAction(items)); } }
此方法利用 Redux Thunk 中间件(推荐的技术)。 Thunk 允许操作创建者分派函数而不是普通的操作对象,从而提供对分派和 getState 函数的访问。虽然它需要中间件,但它可以无缝地用于客户端和服务器端渲染。
最终,最佳方法取决于个人应用程序的要求。理想情况下,操作应包含最少的信息;但是,必要时在操作创建器中使用 getState 是可以接受的。考虑这两种方法的优缺点,然后选择最适合您的项目的一种。
以上是Redux Action Creators 中的状态访问何时适合您?的详细内容。更多信息请关注PHP中文网其他相关文章!