确定显示什么屏幕?

时间:2018-09-14 12:52:54

标签: react-native react-native-navigation react-native-navigation-v2

好吧,所以我有两个屏幕,当qrscanner读取qr时,它导航到InfoScreen,这一切都很好,但是问题是,即使屏幕是InfoScreen,如果相机指向了qr代码,它仍然会扫描。 / p>

我的问题是如何检查现在的屏幕应用程序是什么,这样我就可以在qrCodeOnReadHandler if(!qrscreen){return}

中编写类似的内容
export default class Qr extends Component {
    qrCodeOnReadHandler = ({ data }) => {
        this.props.navigation.navigate("InfoScreen")
    };
}

class InfoScreen extends Component {
    render() {
        return (
            <View style={styles.buttons}>
              <TouchableOpacity
                style={styles.buttonStyle}
                onPress={() => this.props.navigation.goBack()}
              >
                <Text style={styles.textStyle}>Back</Text>
              </TouchableOpacity>
            </View>
        );
    }
}

1 个答案:

答案 0 :(得分:1)

您可以注册一个事件侦听器,该侦听器在组件聚焦或模糊时触发:

 componentWillMount() {
       this.props.navigation.addListener('willBlur', () =>this.doSomethingOnBlur());
       this.props.navigation.addListener('onFocus', ()=>this.doSomethingOnFocus());
}

您可以在这里找到所有事件

https://reactnavigation.org/docs/en/navigation-prop.html