У меня есть два экрана, и я хочу передать состояние от одного к другому.
Упрощенный экран 1:
import React, { Component } from 'react';
import { View, TextInput} from 'react-native';
import { buttons } from '../../components/buttons/Buttons';
export default class LoginScreen extends Component {
constructor(props) {
super(props);
this.state = {
username: '',
}
}
render() {
return(
<View>
...
<TextInput onChange={(input) => this.setState({username: input})}></TextInput>
...
<Button.main onPress={() => this.props.navigation.navigate('Register', {username: this.state.username})} title='Create Account'/>
</View>
)
}
}
Теперь, если я нажму кнопку, я хочу передать this.state.username
на новый экран. Если я не использую onChange={(input) => this.setState({username: input})}
и не устанавливаю значение для имени пользователя вручную, как это:
this.state = {
username: 'Test',
}
Значение передается без проблем, и я могу получить к нему доступ с нового экрана. Но когда я пытаюсь изменить this.state.username
, пока меняется TextInput
, а затем передать this.state.username
, я получаю следующее предупреждение:
Предупреждение. Это искусственное событие используется повторно по соображениям производительности. Если вы видите это, вы получаете доступ к свойству isTrusted
в освобожденном / аннулированном синтетическом событии. Это установлено в ноль. Если вы хотите сохранить оригинальное синтетическое событие, используйте event.persist ().
Я не знаю, как использовать event.persist()
, как предлагается в предупреждении, и имя пользователя не передается.
Извините, если это глупый вопрос, но я не смог найти решение, и я новичок. Я был бы рад, если бы кто-то мог помочь мне с этим:)