React native: как получить значение по умолчанию для ввода в состояние - PullRequest
0 голосов
/ 22 мая 2018

Я использую NativeBase и ReactNavigation.

На LoginScreen иногда у нас есть пустой ввод для электронной почты, а иногда заполненный defaultValue (когда мы перенаправлены на LoginScreen из SignUpScreen).

const defaultEmail = this.props.navigation.getParam('email', '');

<Input
  placeholder="Email"
  defaultValue={defaultEmail}
  onChangeText={email => this.setState({ email })}
/>

Если мы не изменим поле, произойдет сбой входа, так как состояние не содержит значения по умолчанию.

Я пытался сделать this.setState('email':'defaultEmail') в функции рендеринга (и я полагаю, это устарело, и я получаю бесконечный цикл), я пытался переместить эту логику в componentDidMount, componentWillMount, но это неработать тоже, я полагаю, на этом этапе жизненного цикла компонента у нас нет навигационных реквизитов.Я не проверял идею сделать это с рефери.

Вопрос: как схватить defaultValue до состояния?

1 Ответ

0 голосов
/ 23 мая 2018

Используйте метод жизненного цикла конструктора для инициализации состояния с параметром по умолчанию.

constructor(props) {
    super(props)
    this.state = {
        defaultEmail: props.navigation.getParam('email', ''),
    }
{
...