Установить параметр навигации на goBack в реагировать родной - PullRequest
0 голосов
/ 13 января 2020

У меня есть два экрана A и B.

Когда я перехожу с экрана A на экран BI, передается параметр "onGoBack":false.

На экране B я установил параметр "onGoBack" как true Что не работает. На go назад из Screen BI всегда принимается параметр "onGoBack" только false.

Помогите решить эту проблему.

Как получить обновленное значение параметра на go назад.

Ниже кода, который я использовал для установки параметра на Go назад с экрана B

componentDidMount() {
        this.props.navigation.setParams({onGoBack: true});
        console.log('Updated Go Back Value: '+this.props.navigation.state.params.onGoBack);
        this.backHandler = BackHandler.addEventListener("hardwareBackPress", () => {
                this.props.navigation.goBack();
                return true;
        });
    }

1 Ответ

0 голосов
/ 13 января 2020

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

import { NavigationEvents } from 'react-navigation';

    render() {
            return (
              <View style={{ flex: 1 }}>
                <NavigationEvents
                  onWillFocus={() => {
                    // Do your things here
                  }}
                />
              </View>
            );
          }

Иначе, Вы можете отправлять параметры при переходе с экрана A на экран B:

this.props.navigation.navigate('screenB', { onGoBack: false });

Таким образом, экран A уже установлен в стеке, поэтому вы можете использовать функцию навигации для отправки параметров. Здесь функция навигации будет действовать как goBack (); это не будет sh новый экран в стеке

this.props.navigation.navigate('screenA', { onGoBack: true });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...