Реагировать на родную навигацию. GoBack () - PullRequest
0 голосов
/ 06 августа 2020

У меня простая навигация в проекте React Native, он использует ящик.

У меня есть меню только с 4-5 страницами, и в большинстве случаев это всего одна навигация по странице.

На домашней странице у меня есть меню, и я просматриваю: navigation.navigate () ... это работает нормально, но когда я хочу вернуться, у меня есть ссылка «назад» с помощью navigation.goBack () ... goBack возвращается к кэшированная страница (большую часть времени - домашняя страница).

Так, например, внутри заголовка у меня есть счетчик для непрочитанных сообщений, затем, когда я перехожу во входящие с помощью Navigation.navigate (), я помечаю все сообщения как «прочитанные ".

После нажатия кнопки« назад »я все еще вижу счетчик на домашней странице, поскольку он кэшируется, но если я затем перейду с помощью navigation.navigate ... он сбрасывается, но снова при возвращении с помощью navigation.goBack () ... кешируется.

Есть ли способ предотвратить это.

Спасибо!

Спасибо Ахмаду Абу Салеху ... Я немного изменил код, как и я по навигации 5:

componentDidMount() {
        const { navigation } = this.props;
        this.focusListener = navigation.addListener('focus', () => {
            //code goes here......
        });
    } 

Ответы [ 2 ]

0 голосов
/ 08 августа 2020

Спасибо! На самом деле я не писал ... как я где-то видел в документации (не верьте мне на слово), что использование фокуса в Navigation 5 больше не нужно. Но я займусь этим, раз уж вы об этом упомянули ... еще раз спасибо

0 голосов
/ 07 августа 2020

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

//in componentDidMount() 
this.willFocusSubscription = this.props.navigation.addListener(
'willFocus',
() => {
    //add your code here 
} 
);
//in componentWillUnmount() 
this.willFocusSubscription.remove(); //remove listener when page unmounted
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...