在 Redux 操作中访问状态

War*_*ren 0 reactjs react-native redux react-redux

我有一个具有以下状态的 Redux 减速器:

const INITIAL_STATE = {
  permissions: [''],
  authzError: null
};
Run Code Online (Sandbox Code Playgroud)

我已经有一些修改 state.permissions 的 Redux 操作。我正在编写以下操作来运行权限检查:

export function isAuthz(allowed, except) {
  // I need state.permissions here
  ...
}
Run Code Online (Sandbox Code Playgroud)

我知道我可以这样做:

export function isAuthz(allowed, except, permissions) {
  // Now do permission check
  ...
}
Run Code Online (Sandbox Code Playgroud)

但这意味着将 state.permissions 拉出组件中,然后将其放入 isAuthz 操作中,这似乎是一种浪费且容易出错。我可以只检查减速器中的权限,但我认为一个动作是我应该这样做的地方。

我应该在哪里进行此权限检查以及如何获取 state.permissions ?

谢谢,

沃伦

Arn*_*las 5

你也可以在你的行动中获得状态。

例如,在此操作中,您可以执行以下操作:

export function isAuthz(allowed, except) {
  return (dispatch, getState) => {
    const state = getState()
    // do stuff
  }
} 
Run Code Online (Sandbox Code Playgroud)

  • 您是否需要 redux-thunk ? (2认同)