首页 > 解决方案 > 如何从另一个屏幕组件打开抽屉,以在内容组件的道具中使用另一个屏幕做出本机反应

问题描述

这是我们调用抽屉屏幕的屏幕

        <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

但它仍然不起作用如何解决这个问题?

标签: react-native

解决方案


您正在寻找的是 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 中。由于您的代码在这里被破坏是虚拟示例

并链接到文档


推荐阅读