Ваш код работает, но при посещении страницы /vote
ваше приложение перезагружается, и состояние повторно инициализируется. Вы можете определить это с помощью Redux Devtools , который показывает вызов @@INIT
при навигации.
Если вы добавите <Link to="/vote">Vote</Link>
для перехода к маршруту /vote
, вы заметите, что состояние остается. Если вы используете HashRouter
, у вас не будет этой проблемы, потому что браузер не перезагрузит страницу.
-
Обратите внимание, что с логикой состояния у вас больше проблем. Каждый раз, когда пользователь обновляет одно из ваших полей ввода, вы обновляете хранилище редуксов и ваше локальное состояние. Но когда пользователь впоследствии отправляет форму, вы обновляете только идентификатор локального состояния, этот идентификатор переводится в состояние избыточности только в том случае, если пользователь снова меняет одно из полей ввода.
Я бы обновлял состояние редукса только после отправки формы. Держите значения в местном состоянии до этого времени. Также переместите ваш аксиос вызов в службу, которую вы вызываете с помощью действия redux-thunk
.