reactjs - React Native:出于性能原因,此合成事件被重用。试图通过状态
问题描述
我有两个屏幕,想将状态从一个传递到另一个。
简化屏幕 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()
按照警告中的建议使用,并且用户名没有通过。
抱歉,如果这是一个愚蠢的问题,但我找不到解决方案,我是初学者。如果有人可以帮助我,我会很高兴:)
解决方案
尝试使用 onChangeText 而不是 onChange。
推荐阅读
- excel - Vba Excel使用用户窗体从表中删除一行
- python - python中RGB通道上的ICA
- elasticsearch - 在 Node Stats Api 中,滚动参数表示什么?
- python - ImportError:将 Flask 应用程序部署到 gcloud 后没有名为 _sqlite3 的模块
- r - 使用 sf dplyr 在 R 中按组计算逐点距离
- python - 如何在python中使用鼠标拖动打印在图像(在画布中)上的文本?
- java - 将从 JDialog 输入的值传递给两个类导致两个 JDialog 提示
- excel - VBA:在两列之间提取分钟和小时
- r - R - 按图例从另一列中拆分列
- java - 退出/暂停应用程序时如何暂停背景音乐服务?