当前位置: 首页 > 知识库问答 >
问题:

单击底部选项卡导航器上的选项卡时,如何更新react本机组件

索寒
2023-03-14

我使用底部选项卡导航器在React原生导航。当我切换标签时,组件不更新。请让我知道如何更新/刷新整个组件,当我点击底部的选项卡选项卡导航

共有2个答案

孙修德
2023-03-14

您可以使用导航侦听器检查导航事件,当屏幕聚焦时,它将触发如下功能:

useEffect(() => {
  const unsubscribe = navigation.addListener('focus', () => {
    //Your refresh code gets here
  });
  return () => {
    unsubscribe();
  };
}, [navigation]);

和类组件,如下所示:

  componentDidMount() {
    this._unsubscribe = navigation.addListener('focus', () => {
      //Your refresh code gets here
    });
  }

  componentWillUnmount() {
    this._unsubscribe();
  }

如果要强制更新,请检查此问题

徐学潞
2023-03-14

这里有一个简单的解决方案。

import { useFocusEffect } from '@react-navigation/native';
useFocusEffect(
   React.useCallback(() => {
       console.log("Function Call on TAb change")
   }, [])
);

这是你可以阅读更多的链接。https://reactnavigation.org/docs/function-after-focusing-screen/

 类似资料:
  • 我有一个非常简单的应用程序,由三个片段和一个底部导航栏组成,使用“New Project”创建- 有没有“标准”的方法来做到这一点? 我尝试过: 使用导航组件的,它似乎启动了带有自己的后栈的片段并破坏了底部导航。 以不同的方式使用,这要么导致异常,要么以不同的方式破坏底部导航。 在这篇帖子中,有人问了完全相同的问题,但被标记为重复。我没有找到答案,尤其是关于导航组件。

  • 在jQuery中创建选项卡。单击其他选项卡时,所有选项卡都将消失。我想不出解决办法 以下是无法正常工作的页面:http://www.sleepfullnights.com/products/sfn-537 这是另一个用它工作的人的JSFIDLE:http://jsfiddle.net/gravitybox/7pHg4/我已经复制并粘贴了其中的每个元素到页面中,问题仍然存在。 一个人指出,当点击标签

  • 我正在向项目中添加一个底部导航视图(BottomNavigationView),我希望所选选项卡具有不同的文本(和图标色调)(以实现灰显非所选选项卡的效果)。在颜色选择器资源文件中对android:state\u selected=“true”使用不同的颜色似乎不起作用。我还尝试使用android:state\u-focused=“true”或android:state\u-enabled=“tr

  • 我正在尝试在我的网站上做一个标签功能,我希望有那个标签响应。所以我做了这样的代码: null null 现在我有两样东西, > 首先,我希望在单击标题(伦敦、巴黎、东京)时关闭选项卡,然后在单击该标题时从该标题中删除活动类。 其次,我希望有两个标签在行的响应,第三个标签在第二行,然后单击打开被点击的标签,然后向下推第三个标签。 任何提示都会有帮助,提前谢谢

  • 我有一个片段与片段寻呼机适配器实现表布局每个选项卡有一个回收器视图与一些项目(相同的回收器视图适配器为所有recylerview)通过实现OnItemClick侦听器点击每个项目调用一个活动,实现了一个视图寻呼机与片段StatePagerAdapter,以显示回收器视图项目基于滑动的表布局视图寻呼机显示上一个或下一个选项卡项目每个项目的数据存储在一个数组列表中。 一个片段和两个片段和…是相似的:

  • 问题内容: 我是jquery和bootstrap的新手,所以请考虑我的错误。我已经创建了用于登录和注册的bootstrap模式。它包含两个称为登录和注册的导航选项卡。我有两个按钮弹出相同的Modal窗口,但在Modal窗口中显示不同的选项卡。每个选项卡中都有一个带有许多输入的表单。我的问题是,当我单击“登录”按钮时,在模式中弹出“登录”选项卡时弹出模式,而当我单击页面上的“注册”按钮时,则打开注册