【问题标题】:Triggering an action of a different page using NavigatorIOS Buttons使用 NavigatorIOS 按钮触发不同页面的操作
【发布时间】:2015-11-20 09:53:12
【问题描述】:

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

从 NavigatorIOS 的左侧按钮,我想触发 Side Menu 的 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 中的这段代码访问它?

提前致谢。

【问题讨论】:

    标签: react-native


    【解决方案1】:

    恐怕这还不足以得出结论。首先,我需要看看你是如何组成你的组件的。 menuActions 仅适用于通过上下文的子组件。根据这个代码片段,我看不出你是怎么做到的。

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

    【讨论】:

    • 感谢您的回复,我会在修复完成后立即更新。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-17
    • 2019-02-17
    • 2021-07-08
    • 2017-11-30
    • 2019-10-18
    相关资源
    最近更新 更多