如何停止减速器钥匙本身就是钥匙

时间:2018-07-12 12:36:38

标签: javascript reactjs redux reducers

基本上,我总是遇到这样的问题,因为还原器是对象存储库的键

例如,它们像this.props.users一样被访问

因此,如果用户状态为数组,那很好

const initialState = []

但是如果我有这个:

const initialState = {
  users: [],
  loading: false,
  error: ""
};

因为你知道,我的减速器需要做更多的事情

然后突然在我的代码库中出现了这样一件可怕的事情:

this.props.users.users显然令人作呕。如何将其恢复为this.props.users,但又可以访问其他内容?

减速器代码案例的一个示例:

case FETCHING_USERS_SUCCEEDED: {
  return {
    ...state,
    loading: false,
    users: [].concat(...state.users).concat(action.userData)
  };
}

2 个答案:

答案 0 :(得分:2)

您可以将user声明为这样的变量

const {users} = this.props.users
  

之后,您可以使用用户代替 this.props.users.users

答案 1 :(得分:0)

将状态映射到道具时,请映射state.users.users而不是state.users。