У меня есть компонент ReactJS вроде этого:ReactJS компонент теряет входные значения, введенные пользователем
import React from 'react'
import {observer} from 'mobx-react'
@observer class InputForm extends React.Component{
render(){
if(this.props.store.tab1.isSelected){
return <form><input type="text"/></form>
}else if(this.props.store.tab2.isSelected){
return <form><input type="checkbox"/></form>
}
}
}
путь этот компонент работает: когда tab1
выбран компонент возвращает текстовое окно, в котором пользователь может ввести текст. Если выбрано tab2
, компонент возвращает флажок, который пользователь может проверить.
Моя проблема в том, что всякий раз, когда пользователь переключает вкладки с tab1 на tab2 и наоборот, текст, который пользователь ввел, будет потерян или флажок потеряет свою галочку.
Интересно, как я могу заставить текстовое поле или флажок сохранить введенные пользователем значения, когда пользователь переключает вкладки назад и вперед.
Компонент 'form' под каждым' if' размонтируется, поэтому они теряют свое состояние. Сохраните значение входов и обновите их снова, когда новый компонент будет смонтирован. –
@TylerSebastian Спасибо. Интересно, можете ли вы продемонстрировать пример кода. – user3405291
Я не могу воспроизвести вышеупомянутую проблему, используя React + Redux - вместо этого вы используете mobx. Я кратко рассмотрел документы (раньше я не работал с mobx), и я думаю, что перемещение компонента '' вне блоков 'if' будет исправлять вашу проблему - что-то вроде этого https://gist.github.com/tills13/e6c8bd46c53cfd17ec04da6a43f043bc –