Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 如何在react原生应用程序中实现屏幕而不将其添加到抽屉导航器?_Reactjs_React Native - Fatal编程技术网

Reactjs 如何在react原生应用程序中实现屏幕而不将其添加到抽屉导航器?

Reactjs 如何在react原生应用程序中实现屏幕而不将其添加到抽屉导航器?,reactjs,react-native,Reactjs,React Native,我使用的是react navigation v5,我有一个带有几个屏幕的抽屉导航器,但现在我遇到了一个问题。我有一个配置文件屏幕,我不想显示在抽屉导航器上,所以我想我必须在这个配置文件屏幕上使用堆栈导航器。但是我不知道如何连接这两个导航器,并在它们之间导航。我该怎么做?我的代码是: const StackNavigator = createStackNavigator(); export const MyStackNavigator = () => { const { user,

我使用的是react navigation v5,我有一个带有几个屏幕的抽屉导航器,但现在我遇到了一个问题。我有一个配置文件屏幕,我不想显示在抽屉导航器上,所以我想我必须在这个配置文件屏幕上使用堆栈导航器。但是我不知道如何连接这两个导航器,并在它们之间导航。我该怎么做?我的代码是:


const StackNavigator = createStackNavigator();

export const MyStackNavigator = () => {
  const { user, setUser } = useContext(AppContext);
  return (
    <StackNavigator.Navigator>
      {user && <StackNavigator.Screen name="Profile" component={Profile} />}
    </StackNavigator.Navigator>
  );
};

const DrawerNavigator = createDrawerNavigator();

export const AppNavigator = () => {
  const { user, setUser } = useContext(AppContext);
  return (
    <DrawerNavigator.Navigator
      drawerContent={(props) => {
        return (
          <SafeAreaView
            style={{ flex: 1, paddingTop: Platform.OS === "android" ? 50 : 20 }}
          >
            <View
              style={{
                alignItems: "center",
                justifyContent: "center",
              }}
            >
              {!user ? (
                <View style={{ marginBottom: 20 }}>
                  <Image
                    source={require("../assets/logo.png")}
                    resizeMode="contain"
                    style={{ width: 75, height: 75 }}
                  />
                  <Text
                    style={{
                      textAlign: "center",
                      fontSize: 25,
                      color: "red",
                    }}
                  >
                    Couples.dk
                  </Text>
                </View>
              ) : (
                <View style={{ marginBottom: 20, alignItems: "center" }}>
                  <Image
                    source={{ uri: config.SERVER_URL + user.profileImagePath }}
                    style={{
                      width: 75,
                      height: 75,
                      borderRadius: 50,
                      marginBottom: 10,
                    }}
                  />
                  <Button title="Se Profil" color="#F44336" />
                </View>
              )}
            </View>
            <DrawerItemList {...props} />
            <View style={{ flex: 1, justifyContent: "flex-end" }}>
              <Button onPress={() => {}} title="Logout" color="#F44336" />
            </View>
          </SafeAreaView>
        );
      }}
    >
      {!user && <DrawerNavigator.Screen name="Login" component={Login} />}
      {user && (
        <DrawerNavigator.Screen name="Søg Brugere" component={BrowseUsers} />
      )}
      {user && <DrawerNavigator.Screen name="Match" component={Match} />}
      {user && <DrawerNavigator.Screen name="Chat" component={Chat} />}
      {user && (
        <DrawerNavigator.Screen name="Favoritter" component={Favorites} />
      )}
    </DrawerNavigator.Navigator>
  );
};


const StackNavigator=createStackNavigator();
导出常量MyStackNavigator=()=>{
const{user,setUser}=useContext(AppContext);
返回(
{用户&&}
);
};
const DrawerNavigator=createDrawerNavigator();
导出常量AppNavigator=()=>{
const{user,setUser}=useContext(AppContext);
返回(
{
返回(
{!用户(
夫妇.dk
) : (
)}
{}title=“Logout”color=“#F44336”/>
);
}}
>
{!用户&}
{用户&&(
)}
{用户&&}
{用户&&}
{用户&&(
)}
);
};
和在app.js中

  return (
    <AppContext.Provider
      value={{
        user,
        setUser,
        socket,
        setSocket,
        onlineUsers,
        setOnlineUsers,
        pushToken,
        setPushToken,
        activeConversation,
        setActiveConversation,
      }}
    >
      {initiated && (
        <NavigationContainer>
          <AppNavigator />
        </NavigationContainer>
      )}
    </AppContext.Provider>
  );
返回(
{启动&&(
)}
);

我通过在抽屉导航器的屏幕上添加选项解决了这个问题:

   {user && (
        <DrawerNavigator.Screen
          name="Profile"
          component={Profile}
          options={{
            drawerLabel: () => null,
            title: null,
            drawerIcon: () => null,
          }}
        />
      )}
{user&&(
无效的
标题:空,
抽屉图标:()=>空,
}}
/>
)}