首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React原生navigation.goBack()

React原生navigation.goBack()
EN

Stack Overflow用户
提问于 2020-08-06 22:10:58
回答 2查看 141关注 0票数 0

我在React Native项目中有一个简单的导航,它使用的是drawer。

我有4-5页的菜单只有,他们是大多数时间只有一页导航。

在主页上,我有菜单,我导航: navigation.navigate()...这很好用,但是当我想要返回时,我会使用navigation.goBack()的" back“链接...goBack正在返回缓存页面(大部分时间是主页)。

例如,在header中,我为未读邮件设置了计数器,然后当我使用Navigation.navigate()导航到收件箱时,我将所有邮件标记为“已读”。

单击“上一步”后,我仍然在主页上看到计数器,因为它是缓存的,但如果我后来用navigation.navigate导航...它被重置了,但是当使用navigation.goBack()返回时...已缓存。

有没有办法防止这种情况发生。

谢谢!

感谢艾哈迈德·阿布·萨利赫。当我在导航5上时,我稍微修改了代码:

代码语言:javascript
复制
componentDidMount() {
        const { navigation } = this.props;
        this.focusListener = navigation.addListener('focus', () => {
            //code goes here......
        });
    } 
EN

回答 2

Stack Overflow用户

发布于 2020-08-07 05:40:02

您可以在主页上添加此监听程序,以便在每次访问主页时触发

代码语言:javascript
复制
//in componentDidMount() 
this.willFocusSubscription = this.props.navigation.addListener(
'willFocus',
() => {
    //add your code here 
} 
);
//in componentWillUnmount() 
this.willFocusSubscription.remove(); //remove listener when page unmounted
票数 0
EN

Stack Overflow用户

发布于 2020-08-08 16:56:05

谢谢!实际上我没有把它..。正如我在文档中看到的(不要相信我的话),在导航5中使用焦点已经不再需要了。但既然你提到了我会调查的..。再次感谢

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63285437

复制
相关文章

相似问题

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