почему отображается карта донора и форма становится пустой, когда я меняю маршрут в React js с помощью Redux - PullRequest
0 голосов
/ 05 августа 2020

`Надеюсь, у вас все хорошо, у меня проблема, я создаю веб-приложение для пожертвований, и я использую React и Redux, поэтому, когда я добавляю свою информацию в виде номера телефона и группы крови после добавление и если он переходит на другой маршрут, форма становится пустой, а донорская карта исчезает.

является ли любое решение оставить донорскую карту и форму заполненными и отключенными в компоненте, даже если пользователь изменил маршрут?

Любая помощь приветствуется

просмотреть проблему

Добавить компонент Компонент карты донора

Ответы [ 3 ]

1 голос
/ 07 августа 2020

через пару часов я только что решил проблему, используя localStorage, сохранение данных - это ключ

localstorage не является хорошим подходом для решения этой проблемы. localstorage предназначен для хранения данных после перезагрузки, но здесь вы хотите сохранить данные после изменения маршрута. (Обратите внимание, что react-dom-router не перезагружает страницу.)

проблема в том, что, хотя вы настроили redux в своем коде, вы используете useReducer для состояния ввода пользователя:

const [userInput, setUserInput] = React.useReducer(
  (state, newState) => ({...state, ...newState}),
  {
    bloodType: "",
    phoneNumber: "",
  }
)

useReducer - это локальный редуктор для реакции, и он не использует redux. поэтому ваше состояние ввода является локальным, и оно будет потеряно после изменения маршрута. (в то время как хранилище redux является глобальным и разделяется между компонентами.)

Поскольку ваш компонент уже использует redux, вы можете вместо этого добавить редуктор для Input в redux, а затем сопоставить его с реквизитами компонента в функции mapstatetoprops, чтобы вы могли получить к ней доступ с помощью this.props.userInput. таким образом вы не потеряете состояние после изменения маршрута, поскольку поставщик хранилища redux является глобальным.

0 голосов
/ 07 августа 2020

через пару часов я только что решил проблему, используя localStorage , сохраняющиеся данные - это ключ

0 голосов
/ 05 августа 2020

Redux помогает в этом. Я предлагаю использовать useEffect() в компоненте и запрашивать в хранилище redux, есть ли какое-либо сохраненное значение. Если это так, вам необходимо заполнить поля / значения этими значениями. Это понятно? Вы можете опубликовать свой код, это очень поможет вам с более подробной информацией.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...