我目前正在使用Expo 35(或React Native 0.59)进行项目开发
使用expo start
在IOS模拟器和ADV中进行测试时,我的代码可以正常工作。
但是,当在APK(expo build:android
)中进行测试时,它会以某种方式引发错误并自行自行关闭。
这是我的代码。
componentDidMount() {
Promise.all([
4~5 Axios requests...
])
.then(() => {
this.setState({
...
loaded: true,
...
});
})
}
有解决此问题的主意吗?
答案 0 :(得分:0)
componentDidMount
在渲染组件之前启动,setState
将重新渲染组件,并会触发额外的渲染,但这会在应用更新屏幕之前发生,这是错误的。
您可以改为执行以下操作:
_execute = ()=>{
Promise.all([
4~5 Axios requests...
])
.then(() => {
this.setState({
...
loaded: true,
...
});
})
}
componentDidMount() {
this._execute()
}
答案 1 :(得分:0)
_execute = ()=>{
Promise.all([
4~5 Axios requests...
])
.catch(e=>console.warn(e))
.then(() => {
this.setState({
...
loaded: true,
...
});
})
}
componentDidMount() {
this._execute()
}
添加捕获可以发现错误