Состояние является локальным для компонента UserDetails
. Какие бы логики c у вас не были в next()
, они, по-видимому, выборочно отображают UserDetails
в зависимости от того, какой шаг достиг пользователь.
Это проблема, потому что когда пользователь переходит на следующий шаг, ваш UserDetails
размонтируется и уничтожается и поэтому теряет свое состояние.
Решение состоит в том, чтобы иметь массив selectedOption
в качестве опоры на UserDetails
, и переместите handleChange
вверх в родительский компонент, а также в качестве опоры на UserDetails
. Сохраните selectedOption
в состоянии родительского компонента, который не размонтируется при изменении шага.
<UserDetails ... selectedOption={parentStateSelectedOption} handleChange={handleChange} />
В <Select />
:
<Select ... value={parentStateSelectedOption} onChange={handleChange}
^ parent handleChange not local
В родительском компоненте, поместите событие handleChange
, чтобы оно сохранялось в родительском состоянии.
Теперь, когда пользователь переходит к следующему экрану, вы благополучно сохранили выбранные параметры в родительском состоянии.