React-Native жизненный цикл: ComponentDidMount не работает после закрытия приложения и изменения компонента - PullRequest
0 голосов
/ 02 июля 2019

Я новичок в React Native и у меня есть ошибка в моем коде в жизненном цикле.

Проблема начинается, когда я делаю это:

  1. Просмотр панели управления
  2. Перейти к просмотру таймера
  3. Делай что-нибудь с Таймером в componentDidMount()
  4. Закрыть приложение
  5. Откройте приложение (приветствие) и перейдите к Таймеру
  6. Делай что-нибудь на Таймере
  7. Перейти к панели инструментов
  8. Снова перейдите к Таймеру и попробуйте сделать что-нибудь в componentDidMount() //Here's the error

Проблема, когда я захожу в Таймер ПОСЛЕ закрытия приложения, состоит в том, что код внутри componentDidMount() не работает. Когда я пытаюсь сделать то же самое, не закрывая приложение, все в порядке, но когда я закрываю его, компонент не «перезагружается» или что-либо, поэтому я не вижу никаких изменений.

Таймер - это просто представление, которое загружает и отправляет данные с сервера, а на панели инструментов есть кнопка для перехода в Таймер, куда отправляются данные в componentDidMount().

(я не думаю, что это важно, но я использую Expo)

Так что мне нужно, когда я закрываю приложение или что-то еще, когда я захожу в Timer во второй раз, когда он вызывает пользовательскую функцию in / out componentDidMount / componentWillMount, теперь уже во второй раз Timer и функции заморожены и ничего не делают.

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

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

1 Ответ

0 голосов
/ 02 июля 2019

componentDidMount работает только один раз при загрузке компонента. Является ли ваш таймер Компонент отключен, когда вы переходите к Dashboard, как указано выше. Если нет, то он больше не будет вызываться. Для решения этой проблемы либо вам нужно размонтировать компонент использования componentDidUpdate.

...