问题描述
我有两个屏幕,其中一个屏幕显示配置文件信息,另一个屏幕用于编辑信息。如果我输入了第一个屏幕配置文件,它将显示数据库中的正确数据。然后,我转到下一个屏幕,在这里我可以更改到目前为止所有可用的信息。但是,如果我返回上一个屏幕,我仍然会看到旧数据。因此,无需重新渲染。
但是,如果我导航到另一个屏幕,则该屏幕将获取新数据。并执行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中,我们使用导航器来安装/卸载组件