我正在尝试使用react-native-camera
. 首先,它扫描二维码并提取一个字符串,然后导航到下一个屏幕react-navigation
。在第二个屏幕中,它进行 API 调用。
现在,如果我返回扫描仪屏幕,将立即扫描二维码。那就是我遇到错误并且扫描仪冻结的地方。我通常会收到此错误:
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 的错误?