React-Redux action.payload не определен - PullRequest
0 голосов
/ 06 июня 2018

Я новичок в Redux.Я пытаюсь получить список пользователей, но когда я console.log (action.payload) в функции редуктора, он показывает неопределенное.

const URL = 'http://localhost:3001/api/'

export function fetchUsers() {
  return (dispatch) => {
    dispatch(fetchUserRequest());
    return axios.get(`${URL}userdata`)
      .then(response => response.json())
      .then(userlist => fetchedUsersSuccessfully(userlist.data))

  }
}

export function fetchUserRequest() {
  return {
    type: 'FETCH_REQUEST',
  }
}
export function fetchedUsersSuccessfully(users) {
  return {
    type: 'FETCH_USERS',
    payload: users
  }
}

Это мой редуктор

export function users(state = InitialState, action) {
  console.log(action.payload)
  switch (action.type) {
    case FETCH_USERS:
      return [...state, action.payload]
    default:
      return state;
  }

}

Ответы [ 2 ]

0 голосов
/ 20 августа 2018

Когда создается магазин, отправляется действие «INIT».Таким образом, все редукторы возвращают свое первоначальное значение.Таким образом, ваше начальное дерево состояний заполняется.Поэтому, если вы получаете неопределенную ошибку, это может быть связано с действиями @@ INIT, которые не имеют полезной нагрузки.

Кроме того, всякий раз, когда вы отправляете действие, вызываются все ваши редукторы, ваше действие fetchUserRequest не имеет полезной нагрузки., так что вы получите неопределенную ошибку.

0 голосов
/ 06 июня 2018

Вы просто забыли отправить успешное действие так же, как и с первым.Правильная отправка должна быть такой:

.then(response => response.json()).then(userlist => dispatch(fetchedUsersSuccessfully(userlist.data)))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...