反应导航 + 流星 + Redux,导航选项不遵守或未应用



我有问题,这是我的代码:

import React, { Component } from 'react';
import Meteor, {
  withTracker,
} from 'react-native-meteor'
import { connect } from 'react-redux';
class CreateCommunityContainer extends React.Component{
   static navigationOptions = {
       title: 'Community',
       headerRight: (
            <TouchableOpacity onPress={() => {
                this.testFunction(par);
            }}>
                <View style={{marginRight:5}}>
                   <Text>NEXT</Text>
                </View>
            </TouchableOpacity>),
    };
    testFunction(par){
    ... some code
    }
    render(){
        ...some code
    }
}
const CreateCommunityMeteor = withTracker(({userId}) => {
   ...some code         
})(CreateCommunityContainer);
export default connect(mapStateToProps, mapDispatchToProps)(CreateCommunityMeteor);

我的问题是为什么导航选项不被尊重或不应用,我希望导航选项在标题栏中给我标题"社区",但事实并非如此。 但是如果我把它放在导航路由器中,它会像往常一样工作,以及如何让它生效。 顺便说一句,我需要在屏幕类中定义导航选项,而不是在路由器中, 所以我可以从 React 导航的 headerRight 组件调用该类中的函数。

既然你提到没有 withTracker meteor 函数,你的组件会按预期运行,我相信问题在于withTracker没有将静态属性带入它创建的新组件中。

您可以尝试改为在CreateCommunityMeteor组件上设置 navigationOptions 属性:

const CreateCommunityMeteor = ...
CreateCommunityMeteor.navigationOptions = {
    ...
};
export default connect(...)

我还注意到您在静态函数中调用this - 这不起作用,因为静态函数无法访问类实例。

同样,我建议的静态函数也无法访问它。

要解决此问题,您可以将navigationOptions设置为函数:({navigation}) => {...}并将所需的参数作为参数传递给路由。

相关内容

  • 没有找到相关文章