CJY0208 / react-router-cache-route

Route with cache for react-router V5 like <keep-alive /> in Vue
https://www.npmjs.com/package/react-router-cache-route
MIT License
1.14k stars 110 forks source link

clearCache执行不成功 #140

Closed fenyuluoshang closed 2 years ago

fenyuluoshang commented 2 years ago

当CacheRoute没有设置key或者mulity时key为固定值, clearCache函数不会清理所有的缓存

  1. 没有key,不会被清理
  2. 相同key,多个缓存,只有最后一个可以成功清理

建议,当没有设置cacheKey,或者缓存key相同时,是否使用一些hex来区分

when use CacheRout without key or use mulity with a static key, the method 'clearCache' while not clear all cache,

  1. without key , it will not work
  2. with same key, and many cache, only last one can be clear

for support, if developer not set cacheKey or have same key cache, can we use some hex or timestemp

CJY0208 commented 2 years ago
  1. 没有key,不会被清理

这个行为目前已经是默认行为了,做改动的话会造成 break change,最好还是不调整

  1. 相同key,多个缓存,只有最后一个可以成功清理

这一项是使用了 multiple 属性,但清除不成功吗?

fenyuluoshang commented 2 years ago
  1. 没有key,不会被清理

这个行为目前已经是默认行为了,做改动的话会造成 break change,最好还是不调整

  1. 相同key,多个缓存,只有最后一个可以成功清理

这一项是使用了 multiple 属性,但清除不成功吗? re: 1 是否应该在key上做一些描述,告知使用者这里需要设置独立的key re: 2 是的,并且使用了相同的key,其实我理解可能类似于1,他们的key相同,所以只有最后一个key生效了而其余的没有

CJY0208 commented 2 years ago

第二条 应该是可以清除掉 cacheKey 相同的所有缓存的,如果清不掉 可能是有问题,可以提供复现 demo 嘛

fenyuluoshang commented 2 years ago

https://codesandbox.io/s/cache-route-demo-forked-98k4uq 我基于你的sandbox-demo做了一点点改动,你可以尝试进入几个不同的页面,点击add之后返回回来,最后点击clear,只有最后一个被清理了,keys里也不再存在item

CJY0208 commented 2 years ago

确实有问题,我修一下

CJY0208 commented 2 years ago

1.12.7 应该修复了