`react-native-router-flux`是否允许呈现子代的父组件?

时间:2017-01-25 15:23:03

标签: javascript react-native react-native-router-flux

我可能在这里错过了文档中的内容。

react-native-router-flux是否允许带有组件的父场景,这会通过它渲染子场景?

在代码中说,对于此路由:

<Scene key="home" component={ApplicationRoot}>
  <Scene key="settings" component={Settings} />
</Scene>

ApplicationRoot组件

class ApplicationRoot extends React.Component {
   constructor() { .. }
   render() {
     return(
       <View>{this.props.children}</View>
     );
   }
}

Settings传递到此处。

这个想法是我可以在ApplicationRoot内设置生命周期函数来处理应用程序级功能(比如检查登录,监听注销等),这将适用于所有嵌套路由。

如果通过包装父组件无法做到这一点,是否有人知道实现此目的的方法?

1 个答案:

答案 0 :(得分:0)

在官方代码库中example之后,我已经选择了切换台解决方案;根初始组件(始终设置为// mozfullscreenerror event handler function errorHandler() { alert('mozfullscreenerror'); } document.documentElement.addEventListener('mozfullscreenerror', errorHandler, false); // toggle full screen function toggleFullScreen() { if (!document.fullscreenElement && // alternative standard method !document.mozFullScreenElement && !document.webkitFullscreenElement) { // current working methods if (document.documentElement.requestFullscreen) { document.documentElement.requestFullscreen(); } else if (document.documentElement.mozRequestFullScreen) { document.documentElement.mozRequestFullScreen(); } else if (document.documentElement.webkitRequestFullscreen) { document.documentElement.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT); } } else { if (document.cancelFullScreen) { document.cancelFullScreen(); } else if (document.mozCancelFullScreen) { document.mozCancelFullScreen(); } else if (document.webkitCancelFullScreen) { document.webkitCancelFullScreen(); } } } // keydown event handler document.addEventListener('keydown', function(e) { if (e.keyCode == 13 || e.keyCode == 70) { // F or Enter key toggleFullScreen(); } }, false);),它将负责检查(在我的情况下)Redux状态并路由到相关页面。

我没有完全按照我的目标行事,因为它无法在应用程序级别听取状态,但它确实能够完成工作。