首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >等待操作后不执行导航addListener

等待操作后不执行导航addListener
EN

Stack Overflow用户
提问于 2021-10-17 15:29:50
回答 1查看 38关注 0票数 0

我正在监听有关在React原生中导航&在componentDidMount中使用@react-navigation^5.x.x的焦点事件。如果只编写了这个操作,那么它就可以很好地工作并执行其中的代码。

但在我的示例中,我从API获取数据(也尝试模拟await),并在添加焦点侦听器之前使用await。这并不是第一次听到。但是当我转到另一个页面并返回时,它开始工作/执行。

这是我的代码片段。

代码语言:javascript
运行
复制
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并将整个代码块置于超时状态,它也会停止执行焦点回调。

EN

回答 1

Stack Overflow用户

发布于 2021-10-17 15:37:20

我不认为你可以在生命周期中使用async,试试这个:

代码语言:javascript
运行
复制
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()
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69605843

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档