我正在使用React Native中的第一个Stack Navigator。我想知道最好的方法是让视图转到堆栈中的下一个视图,而不需要知道名称。
现在我正在为堆栈中的每个视图提供整个 this.props.navigation 对象以及它应该转到下一个视图的名称:
this.props.navigation.navigate(nextQuestionName);
但是我想将堆叠中的卡分离,不必了解相邻卡片的任何信息。我想知道最佳做法是什么 - 他们是否应该依赖堆栈导航器中的一个函数来动态决定下一张卡是什么?或者是否有一些我缺少的内置函数,这是做到了吗?
棘手的部分是,从任何给定的屏幕,我无法访问有关整个导航堆栈的信息。我想也许所有路线的列表可能都在导航对象中,但我只看到:
{ dispatch: [Function],
06-23 11:17:49.193 5204 5652 I ReactNativeJS: state: { routeName: 'AnyoneGoFishing', key: 'Init-id-1498212911329-0' },
06-23 11:17:49.193 5204 5652 I ReactNativeJS: goBack: [Function: goBack],
06-23 11:17:49.193 5204 5652 I ReactNativeJS: navigate: [Function: navigate],
06-23 11:17:49.193 5204 5652 I ReactNativeJS: setParams: [Function: setParams] }
通过在线研究,我感觉推荐的解决方案与向路由器发送消息有关,但我找不到一个有效的例子。
更新:对于遇到同样问题的任何人,我发现这个GitHub问题线程中隐藏了答案。答案是有一个通用的NextScreen屏幕,根据params中的数据进行更改,而不是选择哪个Screen。
https://github.com/react-community/react-navigation/issues/1210