首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Ionic React中清除视图缓存

在Ionic React中清除视图缓存
EN

Stack Overflow用户
提问于 2021-08-13 08:51:11
回答 1查看 287关注 0票数 4

我面临着与this other question完全相同的问题,我的Ionic react应用程序缓存了一些视图,以便当用户注销并直接使用另一个帐户登录时,他们会在几秒钟内看到前一个用户的先前数据(例如新闻列表)。因此,解决方案是在用户访问登录视图时清除所有缓存的视图。

This solution建议在视图中添加以下代码:

代码语言:javascript
复制
$scope.$on("$ionicView.enter", function () {
  $ionicHistory.clearCache();
  $ionicHistory.clearHistory();
});

然而,这与离子v5中用于react的API不同。我可以将事件侦听器替换为:

代码语言:javascript
复制
import { useIonViewWillEnter } from '@ionic/react'

useIonViewWillEnter(() => {
  // ...
})

但是,什么是等价物:

代码语言:javascript
复制
$ionicHistory.clearCache();
$ionicHistory.clearHistory();

我没有在official doc中找到任何东西,所以如果有人有一个想法,我将非常感谢一些帮助。

EN

回答 1

Stack Overflow用户

发布于 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

希望这能起作用!!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68769401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档