【发布时间】:2020-05-16 14:16:47
【问题描述】:
我有两个屏幕,A 和 B。屏幕 A 只包含一个 react-native-paper TextInput,例如,
<View>
<TextInput
error={error}
label='Enter something'
mode='outlined'
onBlur={this.onBlurHandler}
onChangeText={text => this.setState({text})}
value ={this.state.text}
/>
</View>
在上述情况下,当我从屏幕 A 移动到屏幕 B 时,如果我按返回键回到屏幕 A,TextInput 的值就会消失,尽管 this.state.text 拥有我在屏幕 A 上填写的任何数据。
如果我对值进行硬编码,则在从 A 导航到 B 然后返回 A 后它会保持保留。例如,
<View>
<TextInput
error={error}
label='Enter something'
mode='outlined'
onBlur={this.onBlurHandler}
onChangeText={text => this.setState({text})}
value ={'Hello World'}
/>
</View>
请告诉我,当我从屏幕 B 移动到屏幕 A 时,如何确保 TextInput 的值保持不变。非常感谢!
【问题讨论】:
-
你是如何浏览屏幕的?
-
@Auticcat 通过 react-navigation 的 props.navigation
-
您可以在导航时将文本值作为道具传递或将最后一个文本值保存在 asyncstorage 中,并在屏幕 A 加载时获取它
-
@Helen lux 在 react-navigation 中,当从屏幕 B 移动到 A 时,构造函数或任何生命周期方法都不会被调用,因为 A 从未被卸载。那么我将如何获取该值?
-
您使用的是哪个导航器?堆栈导航器?还是别的什么?
标签: react-native textinput react-native-paper