CJY
CJY
需要确保你的 targetRouterConfig.component 函数或者 class 不会反复生成新的,如果不理解什么意思的话,需要提供你的复现用例
意思是用了 multiple 还是不能缓存多份,需要手动通过 update 重新请求数据吗?能否提供复现用例
此问题合并到 #168 @waterJLuck
除了配置 vite plugins,还可以选择手动标记 KeepAlive 的 cacheKey 属性,参考[此处](https://github.com/CJY0208/react-activation/blob/master/README_CN.md#1-%E5%8F%AF%E9%80%89%E5%BB%BA%E8%AE%AEbabel-%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6-babelrc-%E4%B8%AD%E5%A2%9E%E5%8A%A0-react-activationbabel-%E6%8F%92%E4%BB%B6)
意思就是 keep alive 组件的 ssr 和 csr 逻辑不一致所以报错了 但现在面临一个问题,keep alive 的原理本来就是先渲染到别处再 dom 移回来的 ssr 没有 dom 所以是直接渲染的 如果要 ssr 也和 csr 保持一致,那可能导致 ssr 的产物里,KeepAlive 内部的视图显示不出来
现在可见的修复措施,产生的结果可能是 ssr 首屏的内容里,KeepAlive 标签包裹的部分会是空白的,这个感觉是不可接受的吧
你是想让内部的 input 不要缓存吗?可以使用 keep alive 的生命周期钩子来监听某个区域进入缓存的状态,根据这个状态来手动卸载你不想缓存的组件 ```jsx import { useActivate, useUnactivate } from 'react-activation' function Inner() { return } function Page() { const [cached, setCached] = useState(false) useActivate(() => setCached(false))...
那你需要对这个 Input 也做 Keep 处理,注意 cacheKey 要相同,表明是同一份缓存 ```jsx const Component = (isShow) => { if (isShow) { return ( ); } return ( ); }; ```
useGetState: 在普通 useState 返回值中增加 getter 方法穿透闭包获取最新值 #1306
> > @calmchang 是的 > > 大佬,以后这个库还维护吗?还是说只维护react-activation了 这个库也会维护,但应该不会有大的迭代了,react-router 已经更新到 6+ 版本,这套方案只支持 6 以下的版本