I have the following code:
<View>
<Header />
<List />
</View>
如果用户点击列表项中的编辑按钮,
react-router
会将页面从 /list
更改为 /list/{itemId}
。这是一个新页面。用户填写了一些信息并单击保存后,react-router
会切换回 /list
。现在整个/list
页面都被重新渲染了!是否有一种缓存页面的方法,使得
react
可以检测到更改并只重新渲染更改的内容,而不是再次渲染整个页面?应该也可以直接显示页面(而非通过
/list
-> /list/{itemId}
),因此我认为不需要使用modal
解决方案。我正在使用
react-router-redux v5.0.0-alpha.9
,因此解决方案应与其兼容。它还应与react-native
和react-dom
兼容。
<Route>
组件确实有一个render
属性,您可以使用它来显示/隐藏组件,而不是在导航到新路由时卸载它的默认行为。请参见https://github.com/ReactTraining/react-router/issues/4888。我不确定timdorr所说的“这很可能会产生意想不到的副作用”是什么意思,但我想在这种情况下应该没问题(除非您在所有地方都这样做)。 - Matt Browne