Возникла небольшая проблема с извлечением и основанным на ответе обновлением массива в моем состоянии в Redux.
Сначала я выполнил обновление всего массива с помощью forEach в действиях (на основе моего начального объекта состояния) и отправилэто готово к редуктору, это сработало.Просто.
Но затем прочитайте учебники, в которых изменение должно выполняться только в редукторе, и это действие должно касаться только получения ответа.Итак, я попытался сделать это двумя способами, оба не удалось.
Полезная нагрузка, которую я отправил редуктору в обоих случаях, была просто готовым ответом, который я получил.
Может кто-нибудь подсказать мне, что пошло не так и как правильно сделать это в редукторе?
Оба подхода не работали:
export const handleMusicCards = (state = musicState, action = {}) => {switch (action.type) {{1013 *
case REQUEST_MUSIC_SUCCESS:
return Object.assign({}, state, {
musicStateItemList: state.musicStateItemList
.forEach((el, i) => {
el.track = action.payload.message.body.track_list[i].track.track_name;
el.album = action.payload.body.track_list[i].track.album_name;
el.artist = action.payload.body.track_list[i].track.artist_name;
el.id = action.payload.body.track_list[i].track.track_id;
el.favClicked = false;
el.addedToFav = false;
}),
isLoading: false
});
}}
export const handleMusicCards = (state = musicState, action = {}) => {switch (action.type) {
case REQUEST_MUSIC_SUCCESS:
return Object.assign({}, state, {
musicStateItemList: state.musicStateItemList
.forEach((el, i) => {
return {
...el,
track: action.payload.message.body.track_list[i].track.track_name,
album: action.payload.message.body.track_list[i].track.album_name,
artist: action.payload.message.body.track_list[i].track.artist_name,
id: action.payload.message.body.track_list[i].track.track_id,
favClicked: false,
addedToFav: false,
}
}),
isLoading: false
});
}}