Я пытаюсь динамически изменить начальный маршрут моего приложения с параметром, который приходит из приложения. js, но он не работает. Событие, отправляющее явное «истина», не работает. Console.log показывает правильное значение.
приложение. js
import React, { useState, useEffect } from 'react';
import { RootNavigatior } from "./src/routes";
import { isSignedIn } from './src/services/auth';
export default function App() {
const [signed, setSigned] = useState(false);
useEffect( () => {
isSignedIn()
.then( res => { setSigned(res);} )
.catch(err => alert("An error occurred"));
}, []);
console.log("signed: ",signed);
return <RootNavigatior signed={signed} />
}
маршрут. js
export const RootNavigatior = ( {signed = false}) => {
console.log("Routes_SIGNED: ", signed);
return(
<NavigationContainer>
<RootStack.Navigator initialRouteName={ () => signed ? "App" : "Auth" } >
<RootStack.Screen
name="App"
component={SignedInStackScreen}
options={{ animationEnabled: false }}
/>
<RootStack.Screen
name="Auth"
component={SignedOutStackScreen}
options={{ animationEnabled: false }}
/>
</RootStack.Navigator>
{/* <RootStackScreen signed={false} /> */}
</NavigationContainer>
)
}
```