如何阻止 reducer key 本身就是一个 key

How to stop reducer key being a key in itself

基本上我总是遇到这个问题,因为 reducer 是对象存储的键

例如,它们的访问方式类似于 this.props.users

所以如果用户状态是一个数组,这没问题

const initialState = []

但如果我有这个:

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

因为你知道,我的减速器还需要做一些事情

然后我的代码库中突然出现了这个可怕的东西,我正在做这样的事情:

this.props.users.users显然,恶心。我怎样才能把它恢复到 this.props.users 但又能访问其他东西?

一个reducer代码案例示例:

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

你可以像这样将用户声明为变量

const {users} = this.props.users

thereafter you can use users instead of this.props.users.users

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