React Native:出于性能原因重用此合成事件。试图通过状态

pet*_*ete 1 reactjs react-native react-navigation

我有两个屏幕,想将状态从一个传递到另一个。

简化屏幕 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>
    )
  }
}
Run Code Online (Sandbox Code Playgroud)

现在,如果我按下按钮,我想转到this.state.username新屏幕。如果我不使用onChange={(input) => this.setState({username: input})}并手动设置用户名的值,如下所示:

this.state = {
    username: 'Test',
}
Run Code Online (Sandbox Code Playgroud)

该值毫无问题地通过,我可以从新屏幕访问它。但是当我尝试在更改this.state.usernameTextInput更改然后通过时,this.state.username我收到以下警告:

警告:出于性能原因重用此合成事件。如果您看到这一点,则表示您正在访问已isTrusted发布/无效的合成事件上的属性。这被设置为空。如果您必须保留原始合成事件,请使用 event.persist()。

我不知道如何event.persist()按照警告中的建议使用,并且用户名没有通过。

对不起,如果这是一个愚蠢的问题,但我找不到解决方案,而且我是初学者。如果有人可以帮助我,我会很高兴:)

tny*_*nyN 7

尝试使用 onChangeText 而不是 onChange。