在 Action Creator 中访问 Redux 状态:优点和缺点
从 Action Creator 中访问 Redux 存储状态仍然是一个争论的话题
方法 1:导入 Store
import store from '../store'; export const SOME_ACTION = 'SOME_ACTION'; export function someAction() { return { type: SOME_ACTION, items: store.getState().otherReducer.items, } }
虽然此方法避免了中间件,但它依赖于从模块导出的单例存储。然而,服务器渲染需要为每个请求单独存储,使得这种方法不切实际。
方法 2:使用 getState
export const SOME_ACTION = 'SOME_ACTION'; export function someAction() { return (dispatch, getState) => { const {items} = getState().otherReducer; dispatch(anotherAction(items)); } }
这种方法需要使用 Redux Thunk中间件,但允许更大的灵活性,在客户端和服务器上无缝工作。
Redux 贡献者的意见
Redux 贡献者对此事的看法各不相同:
结论
最终,访问操作创建者中的状态的决定取决于应用程序的特定需求。如果需要最小的操作负载,避免 getState 可能更好。但是,如果用例证明是合理的,则访问 thunk 中的状态可以提供更大的灵活性和服务器端兼容性。
以上是什么时候在 Action Creators 中访问 Redux 状态是合理的?的详细内容。更多信息请关注PHP中文网其他相关文章!