Я пытаюсь передать начальную опору Парама на экран TabNavigator. Он предназначен для входа в систему локального государства, просто делая доказательство концепции. Он отлично работает с экраном стекового навигатора, но route.params
на экране вкладок не определен. Что я делаю не так?
Кроме того, я почти уверен, что это должно измениться, насколько это возможно для управления состоянием, но я хотел убедиться, что могу просто изменить состояние в родительском App
и иметь эффект. Он работает на экране стека, что означает, что я могу позвонить setLoggedIn(true)
и перенесет меня в навигатор вкладок. Но я не могу go вернуться ...
const Track = () => {
return (
<TrackStack.Navigator>
<TrackStack.Screen
name='TrackListScreen'
component={TrackListScreen}
/>
<TrackStack.Screen
name='TrackDetailScreen'
component={TrackDetailScreen}
/>
</TrackStack.Navigator>
);
};
const App = () => {
const [loggedIn, setLoggedIn] = useState(false);
return (
<NavigationContainer>
{loggedIn ? //is logged in
(
<MainTab.Navigator>
<MainTab.Screen
name='TrackCreateScreen'
component={TrackCreateScreen}
initialParams={{ setLoggedIn }}
/>
<MainTab.Screen
name='AccountScreen'
component={AccountScreen}
/>
<MainTab.Screen
name='Track'
component={Track}
/>
</MainTab.Navigator>
) : (
<LoginStack.Navigator>
<LoginStack.Screen
name='SignupScreen'
component={SignupScreen}
initialParams={{ setLoggedIn }}
/>
<LoginStack.Screen
name='SigninScreen'
component={SigninScreen}
/>
</LoginStack.Navigator>
)}
</NavigationContainer>
);
};
export default App;