Состояние является локальным для вашего компонента. Независимо от того, какие логики c у вас в next (), кажется, выборочно рендерится в зависимости от того, какого шага достиг пользователь.
Это проблема, потому что когда пользователь переходит на следующий шаг, ваши значения состояния отключаются и уничтожается и, следовательно, теряет свое состояние.
Решение состоит в том, чтобы сохранить значения в качестве подпорки для вашего дочернего компонента и переместить handleChange вверх в родительский компонент, а также использовать его в качестве подпорки для дочернего компонента. Сохраните значения в состоянии родительского компонента, который не размонтируется при изменении шага. В родительском компоненте поместите событие handleChange, чтобы оно сохранялось в родительском состоянии.
Теперь, когда пользователь переходит на следующий экран, вы благополучно сохранили выбранные значения в родительском состоянии.