【发布时间】:2021-07-04 19:13:42
【问题描述】:
当我从其他组件返回某个组件时,我想阻止它重新安装。
例子,
function App() {
<Switch>
<Route exact path="/">
<Home />
</Route>
<Route exact path="/about">
<About />
</Route>
</Switch>
}
如果我转到/about 并返回/,我不想再次为主页组件运行useEffect,因为我正在使用firestore 实时更新来更新主页上的帖子和当 useEffect 运行时,它会再次从 firstore 获取所有帖子。
有什么方法可以防止 Home 组件重新挂载吗?
【问题讨论】:
-
我认为您必须使用自定义挂钩,因为 useEffect 总是在重新挂载时运行。此外,您希望组件“重新安装”,这就是您显示它的方式。我认为您可以澄清一下您希望它重新安装,但您不希望 useEffect 触发。
-
与其试图规避默认行为(即在路由更改时卸载),我建议考虑将您对 firestore 的调用重新定位到不会被卸载的
App组件。将您需要的信息传递给Home组件。