react-native - 反应导航+流星+ redux,navigationOption不被尊重或不应用
问题描述
我有疑问,这是我的代码:
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);
我的问题是为什么 navigationOption 不被尊重或不应用,我希望 navigationOption 在标题栏中给我标题“社区”,但事实并非如此。但是如果我把它放在导航路由器中,它会像往常一样工作,以及如何使它生效。顺便说一句,我需要在屏幕类而不是路由器中定义 navigationOption,所以我可以从反应导航的 headerRight 组件调用该类中的功能。
解决方案
由于您已经提到如果没有withTracker
流星功能,您的组件会按预期运行,我认为问题在于withTracker
没有将静态属性带入它创建的新组件中。
您可以尝试navigationOptions
在组件上设置属性CreateCommunityMeteor
:
const CreateCommunityMeteor = ...
CreateCommunityMeteor.navigationOptions = {
...
};
export default connect(...)
我还注意到您正在调用this
静态函数 - 这不起作用,因为静态函数无权访问类实例。
同样,我建议的静态函数也无法访问它。
为了解决这个问题,你可以设置navigationOptions
为一个函数:({navigation}) => {...}
并将你需要的作为参数传递给路由。
推荐阅读
- matlab - matlab如何调用get方法?
- python - 如何计算大量嵌套字典之一中的键
- git - 合并两个分支后,Gitlab 分支“发散”
- php - 使用 PHP 从谷歌地图获取行程纬度和经度
- image - image in excel report
- python-3.x - 让 Selenium WebDriver 一次等待几个小时的最佳方法是什么?
- php - for what : resemble in wordpress templates
- algorithm - 给定幂集子集和的集合时求集合的算法
- c# - 绑定 ScrollView 内容
- java - 如何允许从同步结构中同时读取?