useReducer для сохранения состояния объекта и обновления указанного c элемента - PullRequest
0 голосов
/ 08 мая 2020

Попытка обновить определенный c элемент в объекте приводит к тому, что приложение сканирует sh.

Указанный c объект выглядит следующим образом:

auth: {
    user: {
        id: string;
        emailVerified: boolean;
        onBoarded: boolean;
    }    
}

Редуктор выглядит так:

case 'USER_ONBOARDED':
  return { ...state, user: { ...state.user, onBoarded: true } };

и его выполнение:

dispatch({ type: 'USER_ONBOARDED' });

Что я делаю не так, почему я не могу просто обновить состояние onBoarded и установить для него значение true, и сохранить остальные элементы данных для объекта пользователя?

1 Ответ

0 голосов
/ 08 мая 2020

user находится внутри auth, поэтому вам нужно обновить его, учитывая это тоже

case 'USER_ONBOARDED':
     return { 
       ...state, 
       auth: {
          ...state.auth, 
          user: { 
             ...state.auth.user, 
             onBoarded: true 
          } 
       }
     };
...