react-native - React-Navigation v4 在后按时将状态从子级传递给父级
问题描述
我需要将状态从子屏幕传递到父屏幕。我很难做到这一点。我让用户按下一个按钮到navigate
子屏幕。在子屏幕中填写信息后,我试图将值传递回父屏幕,props.navigation.goBack()
有人可以帮我解决这个问题。
我正在使用反应导航 v4
父屏幕:
const Parent = (props) => {
const [day, setDay] = useState("");
return (
<TouchableOpacity
onPress={() =>props.navigation.navigate({ routeName: 'Child' })}>
</TouchableOpacity>
);
};
子屏幕(我想将day
状态传回给父屏幕)
const Child = props => {
const [day, setDay] = useState("");
return (
<View style={styles.container}>
<TextInput onChange={(text)=> setDay(text)}/>
<Button onPress={()=>props.navigation.goBack()}/>
</View>
);
};
解决方案
如果无法使用正常的导航方式,可以尝试构建自己的后退函数并传递参数。
看看这个也许:
goBack() {
const { navigation } = this.props;
navigation.goBack();
navigation.setParam({ day: dayData});
}
那么电话将是:
<Button onPress={()=>this.goBack()}/>
你可以得到参数:
this.props.navigation.getParam("day")
以某种方式尝试这样 - 如果它不起作用,请尝试使用 this.props.navigation... 或仅使用 navigation.goBack() 等调用,因为我不确定哪种语法对你有用。
推荐阅读
- java - 将数据分配给并发用户
- javascript - Firebase 规则:组和 .where() 中基于角色的身份验证存在问题
- r - 使用 VIM 包中的 kNN 函数时出错
- c - 如何解决 MPI c 程序中的“消息被截断:错误堆栈”错误?
- php - 我想使用 AJAX 从 MySQL 获取数据并显示
- javascript - 无法使用子方法触发器调用父方法
- reactjs - 单击具有动态 ID 名称的按钮后加载指示器
- c - 0/0 (NAN) 和 1/0 (INF) 的字节表示在任何 C 编译器和机器上都相同吗?
- angular - Angular 不在 UI 中显示数据
- docusignapi - DOCUSIGN API - 如何为多个用户使用同一个帐户