比方说点击a页面的链接跳转到b页面,点击小程序左上角的回退,回到a页面时,刷新页面重新发起首页的接口请求
小程序的webview 监听不到pageshow事件,能监听到visibilitychange 事件。
const pageCacheBackHandler = useCallback(() => {
throttle(doSomething());
}, [doSomething]);
const pageShowEventHandler = useCallback(
(event) => {
if (event && event.persisted) {
pageCacheBackHandler();
}
},
[pageCacheBackHanlder]
);
const visibilityStateChangeEventHandler = useCallback(() => {
if (document.visibilityState == "visible") {
pageCacheBackHandler();
}
}, [pageCacheBackHandler]);
useEffect(() => {
window.addEventListener("pageshow", pageShowEventHandler);
document.addEventListener(
"visibilitychange",
visibilityStateChangeEventHandler
);
return () => {
window.removeEventListener("pageshow", pageShowEventHandler);
document.removeEventListener(
"visibilitychange",
visibilityStateChangeEventHandler
);
};
}, [
pageShowEventHandler,
visibilityStateChangeEventHandler,
]);
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
2 回答4.3k 阅读✓ 已解决
4 回答4.6k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
4 回答2.1k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
请问是在ios端吗?
如果是的话按下面操作试试
方式一:
方式二: