Мое веб-приложение использует избыточность для управления состоянием, и один из моих компонентов (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).