微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

React Native:更新数据后没有重新渲染组件

如何解决React Native:更新数据后没有重新渲染组件

我有两个屏幕,其中一个屏幕显示配置文件信息,另一个屏幕用于编辑信息。如果我输入了第一个屏幕配置文件,它将显示数据库中的正确数据。然后,我转到下一个屏幕,在这里我可以更改到目前为止所有可用的信息。但是,如果我返回上一个屏幕,我仍然会看到旧数据。因此,无需重新渲染。

但是,如果我导航到另一个屏幕,则该屏幕将获取新数据。并执行getCurrentUserProfile调用

这会在屏幕上显示有关用户的个人资料信息。

const ProfileScreen = props => {

  const [userObj,setUserObj] = useState({});

  useEffect(() => {
    let mounted = true;
    getCurrentUserProfile().then(user => {
      if (mounted) {
        setUserObj(user);
      }
      console.log(user)
    });
    return () => mounted = false;
  },[]);

  console.log("----b------") // This is only output on the first call
}

我该如何解决。是否有办法在数据库中进行某些更改,以便组件重新呈现并获取新数据。

谢谢。

解决方法

您可能正在使用@ react-navigation包。因此,如果您想在返回上一页时重新获取数据,则可以在该“上一页”上使用https://reactnavigation.org/docs/use-is-focused

只要看看他们的文档,您就会明白。

P.S:通常我们不会直接卸载组件。在React Native中,我们使用导航器来安装/卸载组件

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。