如何解决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 举报,一经查实,本站将立刻删除。