我有一个Navigator,它必须处理4个不同的视图,这些视图应该在同一级别上。我在InitialRouteStack中加载它们,每当我需要其中一个时,我就会调用jumpTo(route)并得到我想要的东西。
但是,当我更改其中一个视图中的值时,我确实有一个回调函数可以更新放置导航器的给定值的状态。我认为这将重新渲染整个事物并更新RouteStack中的道具。
这没有发生。我还尝试在导航器上运行forceUpdate(),但每个组件中的props都没有更新。第一次渲染Navigator时,我一直保持着我传递的值。
有没有办法解决这个问题?我真的不想使用替换(路由),因为每次重新渲染每个组件都会很愚蠢。
编辑 我已经看过immediateResetRouteStack并替换了AtIndex,但它们看起来并不可行。第一个重置整个事物,第二个重写在Index,而理论上,我应该更新传递给堆栈中每个组件的props。
答案 0 :(得分:1)
我有一个类似的question。在那里你可以找到可能的解决方案。
最终我使用redux
来处理所有数据流,这为我解决了这个问题。在那里,我将每个smart component(至少是NavigatorIOS-Route包含的一次)连接到商店。我完全绕过了NavigatorIOS和passProps
。
当passProps发生变化时,还存在一个issue反应原生有关重新渲染NavigatorIOS中的组件。