Навигационные компоненты / экраны должны быть размонтированы или нет? - PullRequest
0 голосов
/ 11 февраля 2019

Я пытаюсь по-разному создать сложное приложение с реагирующей навигацией, и мне интересно, нужно ли отключать компоненты моего приложения.

Имеет ли значение тот факт, что в реакции-навигации DrawerNavigator и TabNavigator, компоненты монтируются и помещаются в память, когда они неактивны, могут вызвать некоторые проблемы с производительностью ??

Я не знаю, если просто переключаться с экрана на экран, позволяя их монтировать, это лучший способ навигации?

Допустим, мое дерево приложений выглядит следующим образом:

- app

---- stack1
     ---- stack1page1
     ---- stack1page2
     ---- stack1page3

---- stack2
     ---- stack2page1
     ---- stack2page2
     ---- stack2page3

---- stack3
     ---- stack3page1

---- stack4
     ---- stack4page1
     ---- stack4page2

Сначала я создал materialBottomTabNavigator для переключения во все стеки (stack1, stack2, stack3 и stack4).Но когда я посетил все стеки, там все смонтированы, и я спрашиваю себя, это проблема ???

Так что теперь я делаю это с другим подходом, пытаясь размонтировать каждый стек, когда япереключиться на другое, и теперь я спрашиваю себя, это проблема ???

Lol, пожалуйста, помогите мне с хорошими аргументами:)

response-native: 0.57.8 реаги-навигация: 3.1.5

Спасибо, ребята

Ответы [ 2 ]

0 голосов
/ 12 февраля 2019

Спасибо за ваш ответ.

Мой вопрос был о TabNavigator и DrawerNavigator, а не о StackNavigator, который сильно отличается.Я уже знаю, что компонент B монтируется и отключается, когда вы переключаетесь с A на B и когда вы возвращаетесь к A. Я использую некоторые StackNavigators, и у меня нет проблем с ним.

Дело в том,, вы не всегда можете использовать StackNavigators со сложными приложениями.

Итак:

Я хотел бы знать, если с Tab или Drawer Navigators , нам нужно отключить компоненты когда мы переключаемся с одного экрана на другой или если все в порядке, что все экраны, составляющие мой навигатор, смонтированы.

Пример

TabNavigator--- stack1 --- stack2 --- stack3

Здесь вы входите в приложение на stack1, переключаетесь на stack2, затем переключаетесь на stack3.При использовании стандартной конфигурации TabNavigator все стеки (или здесь, компоненты внутри стеков) будут монтироваться.

Это проблема с производительностью ??Нужно ли отключать мой компонент, когда я, например, переключаюсь из stack1 в stack2 ??

0 голосов
/ 11 февраля 2019

Когда вы используете StackNavigator или TabNavigator, то какой компонент полностью отключен, зависит от того, покидает ли его пользователь или возвращается к нему.

Рассмотрим следующий сценарий, описанный в документах React-navigation -

Рассмотрим стековый навигатор с экранами A и B. После перехода к A вызывается его componentDidMount.При нажатии B также вызывается его componentDidMount, но A остается смонтированным в стеке, и поэтому его componentWillUnmount не вызывается.

При возвращении из B в A вызывается componentWillUnmount из B, но componentDidMount из A являетсяне потому, что А все время оставался подключенным.

Я предлагаю вам прочитать жизненный цикл навигации в документации.Вот ссылка -

https://reactnavigation.org/docs/en/navigation-lifecycle.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...