使用NavigatorIOS按钮触发不同页面的操作

时间:2015-11-20 09:53:12

标签: react-native

我在主页的导航器中创建了一个带有两个按钮的应用程序。我也使用了React Native Side Menu。 (https://github.com/react-native-fellowship/react-native-side-menu

从NavigatorIOS的左侧按钮,我想触发侧面菜单的toggle()方法。我怎么做到这一点?

<NavigatorIOS
    style={styles.navigationContainer}
    ref="nav"
    initialRoute={{
    title: "Home",
    component: Home,
    ref:'home',
    rightButtonTitle: 'Items',
    leftButtonTitle: 'Menu',
    onLeftButtonPress: () => {
        //menuActions.toggle(); HERE IS THE PROBLEM
    },
    onRightButtonPress: () => {
    this.refs.nav.navigator.push({
        title: "Items",
        component: Items
    });
    }
}} />

Sidemenu的代码和元素位于Home文件中。如何从此代码中访问它,该代码位于index.ios.js?

提前致谢。

1 个答案:

答案 0 :(得分:1)

我担心这还不足以得出结论。首先,我需要看看你如何编写组件。 menuActions仅适用于通过上下文的子组件。根据这段代码片段,我无法看到你是如何做到的。

我的建议: - 检查NavigatorIOS组件是否是SideMenu组件的子组件 - 如果您不想将NavigatorIOS用作SideMenu的子项,则可能需要类似全局存储(例如,您可以使用redux)来反映SideMenu的状态。从正确的地方(在SideMenu的任何孩子中)订阅此商店,您就可以从可以访问的地方触发menuActions