response-native-router-flux: при обратной навигации не вызывается метод жизненного цикла React

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

Библиотека работает нормально, но при обратной навигации не вызывается ни один метод жизненного цикла реакции.

Предположим, например, что я нажал кнопку "Назад" на странице 2. Она переместится на страницу 1, и будет вызван componentWillUnmount() страницы 2, но методы жизненного цикла страницы 1 не будут вызваны.

Я хочу обновить страницу 1 в соответствии с новым состоянием.

Любая помощь будет принята с благодарностью.

1 ответ

При переходе назад по умолчанию Actions.pop() вызывается без аргументов. Чтобы обновить страницу 1, вам необходимо переопределить функциональность кнопки "Назад" и вызвать Actions.pop({refresh:{<propsToSetToPage1>}}), Это должно вызвать componentWillReceiveProps(nextProps) на странице 1, где nextProps - это новые реквизиты, которые вы помещаете в pop().

Ниже приведена документация о реакции-native-router-flux:

Actions.pop() will pop the current screen. It accepts following optional params:
    {popNum: [number]} allows to pop multiple screens at once
    {refresh: {...propsToSetOnPreviousScene}} allows to refresh the props of the scene that it pops back to

PS. Если вы разрабатываете для Android, вы можете сделать это, когда пользователь нажимает кнопку аппаратного возврата тоже. Проверьте BackAndroid на официальной документации React Native.

Другие вопросы по тегам