1

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

我的问题是我如何检查现在的屏幕应用程序,以便我可以在 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>
        );
    }
}
4

1 回答 1

1

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

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

你可以在这里找到所有的事件

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

于 2018-09-14T13:01:35.753 回答