在 React-Native navigationOptions 中处理 OnPress

Posted

技术标签:

【中文标题】在 React-Native navigationOptions 中处理 OnPress【英文标题】:Handle OnPress inside React-Native navigationOptions 【发布时间】:2017-10-26 01:29:48 【问题描述】:

我被困在navigationOptions 中添加保存方法,请你帮我做正确的方法。

static navigationOptions = (navigation) => (
        headerTitle: "Add New Item",
        ...css.header,
        headerRight: <NavViewRight
            onPress=() => this.rightHeaderAction() />,
    )

【问题讨论】:

【参考方案1】:

实际上还不清楚你到底想做什么。 但似乎您想从静态方法调用类内部的非静态方法。

您指的是this,但这里的this 不是指类实例。为了从您的类中调用某些内容,您需要将方法设为静态。

类似这样的:

class MyScreen extends Component 
    static navigationOptions = (
        navigation
    ) => (
        headerTitle: "Add New Item",
        ...css.header,
        headerRight: < NavViewRight
        onPress = 
            () => MyScreen.rightHeaderAction()
        
        />,
    )

    static rightHeaderAction() 
        // your code here
    

【讨论】:

它仍然是静态的,但如果有人想知道为什么你不能在静态函数中接口“this”。

以上是关于在 React-Native navigationOptions 中处理 OnPress的主要内容,如果未能解决你的问题,请参考以下文章

react-native填坑--react-navigation

React-Native中导航组件react-navigation的使用

使用 React-Native Navigation 传递数据

无法从 react-native 中的 navigation.geolocation.getCurrentPosition() 返回位置

navigator.geolocation.getCurrentPosition() 方法在某些设备中返回位置请求超时 react-native

React-native 组件缓存(或防止卸载)(react-navigation)