Определить, какой экран включен? - PullRequest
0 голосов
/ 14 сентября 2018

Хорошо, у меня есть два экрана, когда qrscanner читает qr, он переходит на InfoScreen, и это нормально, но проблема в том, что даже если экран имеет InfoScreen, если камера была указана на qr-коде, он все равно сканирует.

Мой вопрос: как я могу проверить, какое приложение экрана сейчас, чтобы я мог написать что-то подобное в qrCodeOnReadHandler, если (! 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 голосов
/ 14 сентября 2018

Вы можете зарегистрировать прослушиватель событий, который срабатывает, когда компонент фокусируется или размывается:

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

Здесь вы можете найти все события

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

...