Я пытаюсь использовать сканер штрих-кода с react-native-camera
.Сначала он сканирует QR-код и извлекает строку, после чего переходит на следующий экран с помощью react-navigation
.На втором экране он выполняет API-вызов.
Теперь, если я вернусь к экрану сканера, де-QR-код будет отсканирован немедленно.Вот где я сталкиваюсь с ошибкой, и сканер зависает.Я обычно получаю эту ошибку:
Can't call setState (or forceUpdate) on an unmounted component
Я думаю, это потому, что моя componentWillUnmount
очистка работает неправильно или недостаточно быстро, но я уже отменяю запрос axios.
requestCode = (code) => {
if (cancel != undefined) {
cancel();
}
axios.get(API_URI + code, {
cancelToken: new CancelToken(function executor(c) {
cancel = c;
})
}).then(response => {
console.log(response)
//checks if code was already called
this.checkUsed(response.data)
})
.catch(error => {
this.setState({ isValid: false })
});
}
componentWillUnmount() {
cancel();
}
Может быть, я мог бы установить камеру-сканер чуть позже, чтобы он не сканировал так быстро, или это может быть даже ошибка в React Navigation?