【发布时间】:2021-03-07 13:06:29
【问题描述】:
从我的 expo 应用程序中的一组地图导航到另一组时,如果我在地图加载完成之前导航,我经常会收到此错误:
警告:无法对未安装的组件执行 React 状态更新。这是一个空操作,但它表明您的应用程序中存在内存泄漏。要解决此问题,请取消 %s 中的所有订阅和异步任务。%s,一个 useEffect 清理函数
如何解决这个内存泄漏?
下面是我的代码:
function MapsScreen({navigation}) {
const [user_latitude, setUserLatitude] = useState(0)
const [user_longitude, setUserLongitude] = useState(0)
const [position_error, setPositionError] = useState(null)
useEffect(() => {
navigator.geolocation.getCurrentPosition(position => {
setUserLatitude(position.coords.latitude);
setUserLongitude(position.coords.longitude);
setPositionError(null);
},
error => setPositionError(error.message),
{enableHighAccuracy: true, timeout: 20000, maximumAge: 2000}
);
});
【问题讨论】:
标签: react-native memory-leaks react-hooks use-effect