Приложение вылетает при попытке вернуть массив из редуктора - PullRequest
0 голосов
/ 06 апреля 2020

Мое веб-приложение использует избыточность для управления состоянием, и один из моих компонентов (PostsPreviewsGrid.jsx) имеет следующую отправку ( полный код ):

const mapDispatchToProps = (dispatch) => ({
  updateLikes: (postsArr) => {
    dispatch({ type: 'CHANGELIKEDPOSTS', payload: [...postsArr] });
  },
});

Здесь, postsArr это массив объектов, который выглядит следующим образом:

[
  {likedPostId: "abcdef123", liked: 1}
  {likedPostId: "wxyza456", liked: 1}
]

Редуктор (postsLiked.js) - это фрагмент, который выглядит следующим образом ( полный код ):

export default function postsLiked(state = [], action) {
    switch (action.type) {
      case 'CHANGELIKEDPOSTS':
        return [...action.payload];
      default:
        return state;
    }
  }

Здесь, как вы можете видеть, отправляемая полезная нагрузка является массивом. Мне нужно вернуть этот массив из среза редуктора:

return [...action.payload];

Тем не менее, он вылетает из моего приложения с неизменной ошибкой. Но если я заменим приведенный выше оператор для возврата значения, не являющегося массивом, он будет работать просто отлично:

return 'test value`;

Кроме того, console.log() в моем редукторе отображает массив полезной нагрузки без каких-либо отклонений:

console.log('...action.payload', ...action.payload);

Просто return [...action.payload]; вызывает проблему.

Что я здесь не так делаю?

Полный репо для этого приложения здесь, Веб-приложение можно запустить по адресу https://www.schandillia.com/blog (войдите в систему с помощью Google, чтобы воспроизвести кратер sh).

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