react-native - 如何从另一个屏幕组件打开抽屉,以在内容组件的道具中使用另一个屏幕做出本机反应
问题描述
这是我们调用抽屉屏幕的屏幕
<View style={{top:25,marginLeft:10}}>
<TouchableOpacity>
<Icon color="#000000" name="menu" onPress={() => navigation.navigate('DrawerOpen')}/>
</TouchableOpacity>
</View>
这是我在 App.js 中使用的抽屉屏幕
const MainDrawer = createDrawerNavigator({
MainTabs : MainTabs,
},{
contentComponent:props =><Drawescreen {...props}/>
});
我如何从另一个屏幕调用抽屉屏幕我使用了很多术语来调用抽屉 1-切换抽屉 2-drawerOptions
但它仍然不起作用如何解决这个问题?
解决方案
您正在寻找的是 NavigationActions。在您的情况下,您需要从 ScreenTest 屏幕发送操作。这是代码:
navigationOptions: ({ navigation }) => ({
headerRight: () => {
const navigateAction = NavigationActions.navigate({
routeName: "DrawerNavigation",
action: DrawerActions.openDrawer()
});
return (
<TouchableOpacity
style={{ width: 50, height: 50, backgroundColor: "crimson" }}
onPress={() => navigation.dispatch(navigateAction)}
></TouchableOpacity>
);
}
})
它不一定需要在 headerRight 中。由于您的代码在这里被破坏是虚拟示例
推荐阅读
- object - 如何在 Ocaml 的对象中使用另一个 val 定义一个 val?
- sas - 如何存储和传递我的 SAS 结果值?
- r - 停止错误(“动画”,类(绘图)[1],“不支持对象”):缺少参数“绘图”,没有默认值
- reactjs - 如何使用 React 将事件传递给 JavaScript 函数?
- r - 是否有 R 函数来解决“找到两个总和为 x 且乘积为最大值的数字”之类的问题?
- python - 如何在windows上通过python获取多个eternet mac地址?
- scala - Apache Bahir 库的 Scala 2.11 编译
- azure-data-factory - 连接到 MySQL 时如何使用 Azure 数据工厂 (ADF) 解决超时问题?
- c - 如何在 Linux 中调试无调试符号的 C 程序?
- c# - IComparer 未实现接口成员 - 错误 CS0738