react-native-navigation: освобождать экраны после использования

Описание проблемы

Непонятно, как экраны могут быть разрегистрированы. При использовании избыточности кажется, что при использовании startSingleScreenApp и startTabBasedApp начальный экран, из которого запускается приложение, остается в памяти, что заставляет его продолжать получать реквизиты, когда (я полагаю) экран должен быть выпущен.

Шаги по воспроизведению / Фрагменты кода / Скриншоты

  1. startSingleScreenApp - экран входа в систему
  2. startTabBasedApp - домашний экран при входе в систему (ожидайте, что экран входа будет удален из стека)
  3. startSingleScreenApp — экран входа в систему (ожидайте, что домашний экран будет удален (ожидайте, что домашний экран будет удален, а не дублировать создание экрана входа))

Как это исправить?


person html_programmer    schedule 28.03.2018    source источник


Ответы (1)


Я исправил проблему, реализовав shouldComponentUpdate на экране входа в систему. Это не похоже на надежное решение, но оно работает. Однако я не сторонник того, чтобы неиспользуемый экран оставался в памяти.

Для выхода из системы, я думаю, нужно вытащить «домашний» экран из стека.

person html_programmer    schedule 28.03.2018
comment
Собственный компонент (Контроллер на iOS, Макет на Android) очищается, когда экран больше не используется. Вы несете ответственность за очистку ссылок и отмену регистрации слушателей в componentWillUnmount. - person guy.gc; 01.04.2018