react-navigation中的navigationOptions和Redux配合应用2018-12-10

问题描述

react-navigation是React-native应用中,最常见的应用导航模块。但是navigationOptions的各种参数,无法通过state来修改。因此我想着,采用redux来直接动态修改属性内容。故记录一下,如何集成redux来修改navigationOptions的参数。我实际的应用其实是,需要在header加一个下拉列表,比较繁琐,我这里就以title为例吧。

上代码TitleView

  import {View} from "react-native";
  import {Text} from "native-base";
  import connect from "react-redux/es/connect/connect";
  import React from 'react';
  export default class TitleView extends React.Component {

/**
 * 构造函数默认初始化用电的信息
 * @param props
 */
constructor(props) {
    super(props);
    this.state = {
    };
}

render() {
    return (
     <View>
         <Text>{this.props.text}</Text>
        </View>

    )
}
}

连接redux

这里在你的应用界面

const MyTitle = ({ navigation, text }) => <TitleView text={text} navigation=      {navigation} />;
const MyConnectedTitle = connect(storeState => ({       text:storeState.deviceDataSource.dataList.length}))(MyTitle);

以headerLeft为例

 static navigationOptions = ({navigation,screenProps}) => (
            <TouchableOpacity style={{width:120}}>
           
                <View style={styles.TextInputView}>
                    <MyConnectedTitle/>             
                </View>
            </TouchableOpacity>

 })

总结:我搜了网上很多国内的帖子,基本上没有看到类似的好的解决方案。其实思路很简单,仔细看一下就明白了。这里我作为记录,省的将来遇到类似的坑。我的QQ337241905,有相关问题可以联系我。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 如果要看理论的童鞋点击这里 redux中文文档 或者 redux官方文档 ,本文不会太刻意去介绍大篇幅的理论...
    giants_one阅读 10,115评论 1 49
  • 本文将开始详细分析如何搭建一个React应用架构。 一. 前言 现在已经有很多脚手架工具,如create-reac...
    字节跳动技术团队阅读 4,419评论 1 23
  • 学习必备要点: 首先弄明白,Redux在使用React开发应用时,起到什么作用——状态集中管理 弄清楚Redux是...
    贺贺v5阅读 8,994评论 10 58
  • react-navigation导航组件使用详解 注意了,如果有小伙伴们发现运行作者提供的react-naviga...
    光强_上海阅读 23,543评论 38 103
  • 2006年的一天,刚上高一的飛骊和父亲谈到了将来的职业选择,他说,“我想当官,要管很多人,还要当特别拉风的那种官。...
    月牙年轮阅读 656评论 3 0