Open chocking opened 2 years ago
是的,应该是 react-freeze 的原因,我调整下 freeze 的时机,改为延迟冻结
试试 1.12.4
请问下如果redux的更新是在延迟冻结后的话,效果不是一样的吗,因为依赖的store的更新时机是人为操作的、不确定的
不太确定,按理来说 freeze 后组件就不再更新了,上边的代码如果获取不到最新值,也需要考虑可能是闭包问题
感觉不让缓存了的页面进行更新 很容易出现问题,就拿上面的代码来说,就算页面隐藏起来了,但是当全局的stateA.count更新了之后,应该是要重新触发调用useDidRecover,把新的callback传过去的。不仅是全局store这种情况,在页面隐藏之后,页面的任何props变化了,useDidRecover callback里面的都是旧的值。
升级到 1.12.4 还是拿不到最新的 state @CJY0208
更新了 1.12.5,发布当中,优化了 effect 的引用,可以不再传入 deps,尝试避免闭包问题
为什么我的1.12.5这样import会报错? import { useDidCache, useDidRecover } from 'react-router-cache-route';
相关issure: https://github.com/CJY0208/react-router-cache-route/issues/115 相关文件: https://github.com/CJY0208/react-router-cache-route/blob/v1.12.1/src/core/Updatable.js
大致代码如上,当页面隐藏时全局store数据改变了,useDidRecover的effect没有更新(因为react-freeze的原因?),导致didRecover时拿到的是旧数据,目前尝试切回到v1.11.1一切正常