Реагировать на навигацию - передавать параметры при навигации в BottomTabNavigator - PullRequest
0 голосов
/ 22 сентября 2019

Я использую BottomTabNavigator из react-navigation в моем проекте React Native.

У меня есть TAB A и TAB B.Мне нужно передать параметры от A до B.

На экране A:

this.props.navigation.navigate('B', {
            param: 'Test'
        });

В сцене B:

const param = this.props.navigation.getParam('param');

param всегда undefined,Как получить параметры в B?

Это потому, что B не рендерится повторно, когда я звоню navigate?componendDidUpdate не вызывается B.

1 Ответ

0 голосов
/ 22 сентября 2019

Жизненный цикл навигации
События жизненного цикла React Navigation:

React Navigation генерирует события для компонентов экрана, которые подписываются на них.Вы можете подписаться на четыре различных события: willFocus, willBlur, didFocus и didBlur.Подробнее о них читайте в справочнике по API.

Это то, что мне нужно для достижения того, что я просил.Пример:

constructor(props) {
        super(props);
        this.state = {
            alert: false
        };
        this.formikRef = React.createRef();
        this.didBlur = this.props.navigation.addListener('willFocus', payload => {
                if (payload.action.params)
                    this.setState({alert: payload.action.params.alert || false})
            }
        );
    }
// Do not forget to remove listener when component unmount
componentWillUnmount() {
        this.didBlur.remove();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...