我面临着与this other question完全相同的问题,我的Ionic react应用程序缓存了一些视图,以便当用户注销并直接使用另一个帐户登录时,他们会在几秒钟内看到前一个用户的先前数据(例如新闻列表)。因此,解决方案是在用户访问登录视图时清除所有缓存的视图。
This solution建议在视图中添加以下代码:
$scope.$on("$ionicView.enter", function () {
$ionicHistory.clearCache();
$ionicHistory.clearHistory();
});然而,这与离子v5中用于react的API不同。我可以将事件侦听器替换为:
import { useIonViewWillEnter } from '@ionic/react'
useIonViewWillEnter(() => {
// ...
})但是,什么是等价物:
$ionicHistory.clearCache();
$ionicHistory.clearHistory();我没有在official doc中找到任何东西,所以如果有人有一个想法,我将非常感谢一些帮助。
发布于 2021-08-26 10:32:34
在app.js的状态定义中,可以添加cache:false以禁用缓存(请参阅离子文档中的Disable cache within state provider。或者,您可以继续缓存,除非您知道数据已更改。
如果你已经在页面上了,你可以这样做,$state.go($state.currentState, {}, {reload:true})
如果您处于另一个状态,并且想要返回到通常被缓存的状态,但又想刷新它,那么您可以这样做,$ionicHistory.clearCache().then(function(){ $state.go('app.fooState') })
注意,后者需要clearCache返回一个promise。查看我在这个拉取请求中所做的更改,并将您现在拥有的clearCache实现与我的进行比较:https://github.com/driftyco/ionic/pull/3724
希望这能起作用!!
https://stackoverflow.com/questions/68769401
复制相似问题