我正在使用 React-Native-Router-Flux (V. 3.37) 来构建一个 Android 应用程序,并且我正在尝试创建嵌套场景。使用 DefaultRenderer 元素,我已经能够创建一个嵌套场景,但我希望有多个并且能够在它们之间导航。
我的 index.android.js 看起来像这样(在 Router 和 Scene key="root" 元素中)。
<Scene
key="outer"
component={Outer}
title="Outer"
initial
hideNavBar
>
<Scene
key="inner1"
component={Inner1}
title="Inner1"
hideNavBar
/>
<Scene
key="inner2"
component={Inner2}
title="Inner2"
hideNavBar
/>
</Scene>
外部组件是这样的:
<View style={styles.container}>
<View style={styles.smallContainer}>
<DefaultRenderer
navigationState={this.props.children[0]}
onNavigate={this.props.onNavigate}
/>
</View>
</View>
像这样,Inner1 组件将正确嵌套在 Outer 组件的 smallContainer 视图中。但我不知道如何导航到 Inner2。如果我只是将 this.props.children[1] 硬编码为 navigationState,它会告诉我“navigationState 和 onNavigate 属性不应为空”。
如果我使用 onPress={Actions.inner2} 在 Inner1 中放置一个 TouchableHighlight,它根本什么都不做。
我的直觉告诉我答案在于 Outer 组件的 DefaultRenderer 元素中的 onNavigate={this.props.onNavigate} 属性,但我一直无法找到任何相关信息。我刚刚从 React-Native-Router-Flux 的示例文档的深处复制了 DefaultRenderer 元素。
我还研究了 React-Native-Simple-Router、React-Native-Router 和 React-Router-Native,但显然没有一个更好。