关键代码如下,页面中有根据redux中state展示的数据,然后在组件卸载的时候会清空redux中存的数据,点击a标签可以打开新的标签页,如下代码会在打开新的标签页,组件卸载,清空redux数据,页面展示的也就是空的了
const getImage = () => {
window.open('/', '_blank')
}
const HrefPage = () => {
useEffect(()=>{
return ()=>{
resetState() //组件卸载的时候,清空redux存的数据
}
},[])
return <a onClick={getImage} href="#">跳转</a>
}
export default HrefPage
1. 刚开始以为是跳转页面组件卸载的问题【之前打开新tab页也不会清数据啊,没有深入研究这个问题】,把resetState去掉就可以了,但是在切换菜单栏再切回来的时候还是会保留redux数据,所以不能解决问题
2. 然后使用url状态同步,把页面展示的redux存在url params上,发现还是有些数据展示有问题
3. 最后看了下跳转的逻辑,发现a标签中设置href为#,导致点击跳转的时候,当前tab下的页面再次回到当前路径,引起组件卸载,把href参数去掉就可以了文章来源:https://www.toymoban.com/news/detail-693006.html
最终解决方案:去掉a标签的href,然后全局搜了下,发现不止一个地方这么配置了,都给去除了,一个小小的参数引起的问题,记录下,以防再犯文章来源地址https://www.toymoban.com/news/detail-693006.html
到了这里,关于react跳转页面redux数据被清除的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!