Когда я хочу изменить ориентацию, мое приложение принудительно повторно визуализирует основное приложение, и я перехожу к начальному экрану приложения. Это происходит только в android. Я использую реагирующую навигацию следующим образом:
App.js
const App = (props) => {
const [isLoadingComplete, setLoadingComplete] = React.useState(false);
const [initialNavigationState, setInitialNavigationState] = React.useState();
const containerRef = React.useRef();
const ref = React.useRef();
const { getInitialState } = useLinking(ref, {prefixes: ['myapp://'],});
React.useEffect(() => {
async function loadResourcesAndDataAsync() {
try {
setInitialNavigationState(await getInitialState());
} catch (e) {
} finally {
setLoadingComplete(true);
}
}
loadResourcesAndDataAsync();
}, []);
return (
<View style={styles.container}>
<NavigationContainer ref={containerRef} initialState={initialNavigationState} >
<Stack.Navigator>
<React.Fragment>
<Stack.Screen name="Dashboard" component={BottomTabNavigator}/>
</React.Fragment>
</Stack.Navigator>
</NavigationContainer>
</View>
);
};
export default function BottomTabNavigator({ navigation, route }) {
const routeName = route.state?.routes[route.state.index]?.name ?? INITIAL_ROUTE_NAME;
return (
<BottomTab.Navigator initialRouteName={INITIAL_ROUTE_NAME}>
<BottomTab.Screen
name="Dashboard"
component={Dashboard}
options={{
title: 'Dashboard',
tabBarIcon: ({ focused }) => <TabBarIcon focused={focused} name="ios-desktop" />,
}}
/>
<BottomTab.Screen
name="Control"
component={Control}
options={{
title: 'Control',
tabBarIcon: ({ focused }) => <TabBarIcon focused={focused} name="logo-game-controller-a" />,
}}
/>
</BottomTab.Navigator>
);
}
Когда я нахожусь на экране «Управление» и меняю ориентацию, я перехожу к экрану «Панель инструментов». Как оставаться на экране управления, когда я меняю ориентацию в Android?