反应导航-在BottomTabNavigator中导航时传递参数

时间:2019-09-22 17:00:48

标签: react-native react-navigation

我在我的React Native项目中使用BottomTabNavigator中的react-navigation

我有TAB ATAB B。我需要将参数从A传递到B。

在屏幕A中:

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

在Sceen B中:

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

param始终为undefined。如何在B中获得参数?

这是因为在我致电Bnavigate没有重新呈现吗? componendDidUpdate中没有调用B

1 个答案:

答案 0 :(得分:0)

Navigation lifecycle
反应导航生命周期事件:

  

反应导航向订阅的屏幕组件发出事件   他们。您可以订阅四个不同的事件:   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();
    }