在React Native Navigator中更新InitialRouteStack

时间:2015-10-27 18:32:03

标签: javascript reactjs react-native navigator

我有一个Navigator,它必须处理4个不同的视图,这些视图应该在同一级别上。我在InitialRouteStack中加载它们,每当我需要其中一个时,我就会调用jumpTo(route)并得到我想要的东西。

但是,当我更改其中一个视图中的值时,我确实有一个回调函数可以更新放置导航器的给定值的状态。我认为这将重新渲染整个事物并更新RouteStack中的道具。

这没有发生。我还尝试在导航器上运行forceUpdate(),但每个组件中的props都没有更新。第一次渲染Navigator时,我一直保持着我传递的值。

有没有办法解决这个问题?我真的不想使用替换(路由),因为每次重新渲染每个组件都会很愚蠢。

编辑 我已经看过immediateResetRouteStack并替换了AtIndex,但它们看起来并不可行。第一个重置整个事物,第二个重写在Index,而理论上,我应该更新传递给堆栈中每个组件的props。

1 个答案:

答案 0 :(得分:1)

我有一个类似的question。在那里你可以找到可能的解决方案。

最终我使用redux来处理所有数据流,这为我解决了这个问题。在那里,我将每个smart component(至少是NavigatorIOS-Route包含的一次)连接到商店。我完全绕过了NavigatorIOS和passProps

已知问题

当passProps发生变化时,还存在一个issue反应原生有关重新渲染NavigatorIOS中的组件。