如何通过外部代码将原始路径推送到导航器?

时间:2015-07-26 20:00:30

标签: react-native

navigator函数中获取对renderScene的引用很容易,因此在响应JSX树中发生的事件时,调用navigator.push(newRoute)很简单。

在我的情况下,我想从外部事件中调用navigator.push(newRoute)。我的应用程序使用Google签署用户并在登录完成时触发事件,并且我想在这种情况下导航到新路由。

如何获得导航器的参考?有没有什么方法可以将它作为renderScene的参数?

1 个答案:

答案 0 :(得分:1)

您可以通过refs属性获取导航器:https://facebook.github.io/react/docs/more-about-refs.html。它是反应的一部分(不具体反应原生)。从反应本地的文档中可以看出,有很多反应是“反应”。可以在本机反应中使用的功能,所以我真的建议仔细看看反应。

但是请注意,Facebook有一个很好的理由没有明确地大声提及引用。 Refs真的不是" go-to"访问组件的方式。您的情况可能当然不同,但Google注册可能实际上不是"外部"。它实际上可能是导航器上方层次结构树中某个组件的一部分(在这种情况下,您可以将状态更改传递到树中)。

引用"更多关于refs"的摘要。上面的文件:

  

如果您还没有使用React编写多个应用程序,那么您的第一个应用程序   倾向通常是尝试使用refs来制造东西   发生"在你的应用程序中如果是这种情况,请花一点时间思考更多   批判性的关于组件中应该拥有哪个州   层次结构。通常情况下,很明显,适当的地方是拥有"那   state在层次结构中处于更高级别。把国家放在那里   通常会消除任何使用refs以使事情发生的愿望。 -   相反,数据流通常会实现您的目标。

再次 - 您的情况可能会有所不同,并且使用引用可能是完全合理的,但是如果您受到诱惑(例如)将所有与Google相关的内容分离出来以分离对象,如果这样可以进行注册&#34 ;外部" - 三思而后行React真的鼓励把所有相关的东西放到"组件"逻辑在一个地方(组件) - 即使它包括各种技术和外部API。