有时候产品的需要打开的页面,但是新页面可能发生了数据变更,希望刷新之前的页面上的数据。
比如,在文章列表打开创建文章,然后创建完成后切换至文章列表。产品的要求,列表有刚才创建的文章。
解决方案:
localStorage: 用来存储是否需要刷新数据。
监听页面显示事件,当页面显示的时候会触发这个事件。
document.addEventListener("webkitvisibilitychange", () => {
this.onVisibility();
}, false);
document.addEventListener("visibilitychange", () => {
this.onVisibility();
}, false);
onVisibility() {
if((document.visibilityState || document['webkitVisibilityState']) ==="visible") {
this.checkRefresh();
}
}
checkRefresh() {
let isNeedRefresh = LocalStore.get(LOC_NEED_ARTICLE_LIST_UPDATE_KEY, true);
LocalStore.remove(LOC_NEED_ARTICLE_LIST_UPDATE_KEY);
if (isNeedRefresh) {
this.props.dispatch({
type:'article/fetch',
payload:this.originFilter
});
}
}