React Navigation: ошибка «Вложенный навигационный контейнер» и приложение зависает на экране загрузкиAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 React Navigation: ошибка «Вложенный навигационный контейнер» и приложение зависает на экране загрузки

Сообщение Anonymous »

Окружающая среда
  • React Native: 0.72.6
  • @react-navigation/native: 6.1.18
  • @react-navigation/stack: 6.4.1
  • @react-navigation/bottom-tabs: 6.6.1
Проблема
Мое приложение зависает на экране загрузки. Я получаю ошибки о вложенном навигационном контейнере.
Единственный навигационный контейнер, который я нашел, находился в файле MainScreen.tsx.
Сообщения об ошибках
  • Ошибка вложенного навигационного контейнера:

Код: Выделить всё

Error: Looks like you have nested a 'NavigationContainer' inside another.
Normally you need only one container at the root of the app.
Моя структура кода
App.tsx:

Код: Выделить всё

import React from 'react';
import { NavigationContainer, useLinking } from '@react-navigation/native';
import MainScreen from './screens/MainScreen';

export default function App() {
const ref = React.useRef(null);
const [isReady, setIsReady] = React.useState(false);
const [initialState, setInitialState] = React.useState();

const { getInitialState } = useLinking(ref, {
prefixes: ['myapp://'],
config: {
screens: {
Home: 'home',
},
},
});

React.useEffect(() => {
getInitialState()
.then(state => {
if (state !== undefined) {
setInitialState(state);
}
})
.finally(() => {
setIsReady(true);
});
}, [getInitialState]);

if (!isReady) {
return Loading...;
}

return (



);
}
MainScreen.tsx:

Код: Выделить всё

import React from 'react';
import { NavigationContainer } from '@react-navigation/native';
import { createStackNavigator } from '@react-navigation/stack';

const Stack = createStackNavigator();

export default function MainScreen() {
return (






);
}
HomeScreen.tsx:

Код: Выделить всё

import React from 'react';
import { View, Text } from 'react-native';

export default function HomeScreen() {
return (

Home Screen

);
}
Что я пробовал
  • Удаление NavigationContainer из MainScreen — возникла ошибка «Не удалось зарегистрировать навигатор»
  • Использование ссылки вместо useLinking — все равно зависает при загрузке
  • Обновление пакетов React-Navigation с v5 до v6
Вопросы
  • Как мне структурировать навигацию с помощью React Navigation v6?
  • Должен ли я использовать useLinking или ссылку?
    />
Дополнительный контекст
  • Приложение работало на более старой версии React Native (0.62)
  • Недавно обновлено до RN 0.72


Подробнее здесь: https://stackoverflow.com/questions/798 ... loading-sc
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»