#javascript #reactjs #react-native #react-navigation
#javascript #reactjs #react-native #react-навигация
Вопрос:
Я пытаюсь получить начальное состояние в том же формате, который onStateChange prop предоставляет в NavigationContainer. onStateChange не запускается при первоначальном рендеринге. В приведенном ниже примере мне удалось получить состояние при навигации между экранами, но не на первом. Есть идеи?
export default function App() {
const [pageState, setPageState] = React.useState();
return (
<NavigationContainer onStateChange={(state) => setPageState(state)}>
<RootNavigation />
</NavigationContainer>
);
}
Ответ №1:
Попробуйте использовать метод onReady из NavigationContainer из документации: https://reactnavigation.org/docs/navigation-container#onready
Комментарии:
1. Метод onReady не получает состояние, как я могу его использовать
2. Объедините его с методом getRootState. Вам просто нужно добавить ссылку на NavigatorContainer. Что — то вроде этого:
const navigationRef = useRef() const handleGetInitialState = () => { navigationRef.current?.getRootState() } <NavigationContainer ref={navigationRef} onReady={handleGetInitialState}>...</NavigationContainer>