#reactjs #react-redux
Вопрос:
Моя структура пользователей такова:
пользователь = { электронная почта: ‘электронная почта’, карточки: [] }
И я хотел бы добавить данные в массив карточек пользователя (используя redux)
Мой пользователь-редуктор
import { UserActionTypes } from './user.types';
const INITIAL_STATE = {
currentUser: null,
};
// GETS STATES OBJ AND RECIVES AN ACTION
const userReducer = (state = INITIAL_STATE, action) => {
switch (action.type) {
case UserActionTypes.SET_CURRENT_USER:
return {
...state,
currentUser: action.payload,
};
case UserActionTypes.ADD_FLASHCARD:
return {
...state,
currentUser: action.payload,
};
default:
return state;
}
};
export default userReducer;
действия пользователя
export const addFlashCard = user => ({
type: UserActionTypes.ADD_FLASHCARD,
payload: user.flashcards,
});
И когда я это делаю, моя полезная нагрузка не определена.
Не могли бы вы дать мне несколько советов?
Комментарии:
1. как вы отправляете свое действие
addFlashCard
. не могли бы вы также добавить этот код ?2. Консоль.войдите(пользователь) в функцию действия, чтобы увидеть, верны данные или нет.
Ответ №1:
В настоящее время вы перезаписываете currentUser
значение user.flashcards
из действия redux. Чтобы добавить новые карточки, ADD_FLASHCARD
ветвь вашего редуктора должна выглядеть примерно так:
case UserActionTypes.ADD_FLASHCARD:
return {
...state,
currentUser: {
...state.currentUser,
flashcards: [
...state.currentUser.flashcards,
...action.payload
]
}
};
Комментарии:
1. В этом-то и был смысл. Я не знал, как управлять состоянием в редукторе..