我正在监听有关在React原生中导航&在componentDidMount
中使用@react-navigation^5.x.x
的焦点事件。如果只编写了这个操作,那么它就可以很好地工作并执行其中的代码。
但在我的示例中,我从API获取数据(也尝试模拟await),并在添加焦点侦听器之前使用await。这并不是第一次听到。但是当我转到另一个页面并返回时,它开始工作/执行。
这是我的代码片段。
async componentDidMount() {
await new Promise(resolve => setTimeout(resolve, 3000)); // 3 sec
navigation.addListener('focus', async (data) => {
console.log('This block not works for first time when I come on page.')
})
}
编辑-即使我删除了await并将整个代码块置于超时状态,它也会停止执行焦点回调。
发布于 2021-10-17 15:37:20
我不认为你可以在生命周期中使用async
,试试这个:
componentDidMount() {
const getData = async (params) => {
await new Promise(resolve => setTimeout(resolve, 3000)); // 3 sec
navigation.addListener('focus', async (data) => {
console.log('This block not works for first time when I come on page.')
})
}
getData()
}
https://stackoverflow.com/questions/69605843
复制相似问题