#reactjs #react-native #react-native-navigation
Вопрос:
Эй, так у меня небольшой мозговой срыв,
Я ни за что на свете не могу понять, как мне это сделать.
Что я пытаюсь сделать, так это чтобы моя пользовательская навигационная панель не отображалась на экране входа в систему, а отображалась где-либо еще.
Я объяснил в этом коротком видео: https://cdn.discordapp.com/attachments/643261623519150090/904146526778056805/Desktop_2021.10.30_-_16.10.14.04.mp4
Это мой код:
[ корень ./ ] App.js
import LoginScreen from './views/login'
import HomeScreen from './views/home'
import ProfileScreen from './views/profile'
import CustomNav from './views/nav/index'
const Stack = createStackNavigator();
export default function App() {
return (
<View style={styles.Test} >
<NavigationContainer theme={DarkTheme} linking={{
config: {
screens: {
Login: "/",
Home: "/home",
Profile: "/Profile/:Username"
}
},
}}>
<Stack.Navigator
screenOptions={{
headerShown: false
}}>
<Stack.Screen name="Login" component={LoginScreen} />
<Stack.Screen name="Home" component={HomeScreen} />
<Stack.Screen name="Profile" component={ProfileScreen} />
</Stack.Navigator>
<CustomNav Nav="Mobile" />
</NavigationContainer>
</View>
);
}
[ ./nav/индекс] index.js
import React, {useEffect, useState} from 'react';
import {} from 'react-native';
import MobileNav from './mobile'
import WebsiteNav from './website'
const CustomNav = () => {
const [viewing, setViewing] = useState('login');
useEffect(() => {
if(viewing === 'login'){
console.log("Viewing Login")
}else{
console.log("Not Login")
}
}, []);
return(
null
);
}
export default CustomNav;
Комментарии:
1. Не уверен, что это лучшее решение, но вы пробовали переместить экран входа в систему в отдельный навигатор стека? Таким образом, вы все равно сможете перейти от входа в систему к дому, не
CustomNav
показывая этого.2. Я пытался это сделать, но проблема с подчеркиванием все еще заключается в том, чтобы указать одному компоненту переключиться на что-то другое, например, есть ли способ создать какое-то событие или что-то, что выполняется на маршруте, спасибо за ответ