作者:会唱歌的高跟鞋 | 来源:互联网 | 2023-02-01 10:28
可能与该render
方法的工作方式react-router
以及"安装"在React中的实际含义有点混淆.我阅读了文档,它说:
当您使用组件(而不是下面的render或children)时,路由器使用React.createElement从给定组件创建新的React元素.这意味着如果为组件属性提供内联函数,则每次渲染都会创建一个新组件.这导致现有组件卸载和新组件安装,而不是仅更新现有组件.使用内联函数进行内联渲染时,请使用render或children prop(下面).
render:func
这允许方便的内联呈现和包装,而不需要上面说明的不希望的重新安装.
所以我预计当url发生变化时,现有组件将不会被卸载,而是保留在那里,从而保存其状态.但这不是我观察到的.这是我的代码:
因此,组件ETFViewer
和Proxy
得到渲染精细并没有什么与他们错了,但我注意到,当我从移动/proxy
到/summary
和背部的状态丢失!此外,我可以在Chrome的React devtools中看到该组件确实已经消失了......
那么这里发生了什么?有没有办法让组件保存其状态并"隐藏"?
谢谢你的帮助!