Мне нужно получить значение из магазина в редуксе к TextInput. Я знаю, что это может быть установлено value={this.props.Value}
. Мне нужно сохранить это значение, чтобы сохранить его позже, поэтому я изменяю его, используя локальное состояние, например
value={this.state.Value}
onChangeText={text => {
this.setState({
Value: text
})
}}
. И в конструкторе компонента я устанавливаю значение TextInput в локальное состояние
constructor(props) {
super(props);
this.state = {
Value: this.props.Value
}
}
Это прекрасно работает. Но теперь это Значение генерируется при загрузке этого компонента.
componentDidMount() {
this.props.onLoadView();
}
onLoadView () отправит действие, которое сгенерирует новые данные Value в хранилище. Но функция конструктора вызывается перед componentDidMount (), что означает состояние компонента. Значение - это исходные данные в хранилище, а не новые. Если я верну значение value={this.props.Value}
, чтобы исправить эту проблему, я не смогу обработать это значение, чтобы сохранить его позже.
Я знаю, что могу изменить onChangeText
, чтобы обновить значение TextInput для немедленного сохранения. Но всякий раз, когда я не хочу сохранять это значение, я должен изменить его обратно на начальное значение. Есть ли более простой способ решить эту проблему?
Спасибо!