RN-multiplePicker(iOS版)

作者: 精神病患者link常 | 来源:发表于2018-01-26 11:30 被阅读33次

    之前用到了一个react-native-picker 进行时间选择的功能、多级选择的功能,当时也算是实现了功能,但是对于支持的数据结构好像不是很多,因为服务器返回的是 {id: '1', title: '汽车'}这种格式的数据,这个库貌似不支持。。。所以功能完成以后就按照这个库的实现结构自己想封装一个比较好的、支持的数据结构比较多的库。才有了这篇文章,先实现了iOS端的效果,android的刚起步还没写,这几天会把android的也实现了然后发布npm,code比较low,欢迎各位piapia~

    1、支持的功能

    1.省市区
    2.年月日
    3.时分
    4.年月日时分
    5.自定义多级不联动
    6.自定义多级联动 (最多支持5级)

    省市区 省市区返回的数据格式 年月日 年月日返回的数据格式 时分
    时分返回的数据格式 年月日时分
    年月日时分返回的数据搁置 自定义多级不联动
    自定义多级不联动返回的数据格式 自定义多级联动 (最多支持5级)
    自定义多级联动 (最多支持5级)返回的数据格式

    centerType 类型: line、 color、 both

    line
    color

    基本设置

    MultiplePicker.init({
    
                // 必填
    
                // 省市区 == PCA
                // 年月日 == YMD
                // 时分   == HM
                // 年月日时分 == YMDHM
                // 自定义多级不联动 == CUSTOM
                // 自定义多级联动 == CUSTOMLINKAGE
                pickerType: 'CUSTOMLINKAGE',
    
                // 常规设置 可选
                centerType: 'both', // line  color   both
                centerColor: '#f5f5f5',
                topViewBgColor: '#f5f5f5',
                leftTitleColor: '#8F8F8F',
                rightTitleColor: '#4876FF',
                centerTitleColor: '#000000',
                leftTitle: '取消',
                rightTitle: '确定',
                centerTitle: '选择',
    
                // 年月日 设置 可选 默认:yyyy-MM-dd
                ymdTimeFormatter: 'yyyy-MM-dd',
    
                // 时分  设置 可选 默认:HH:mm
                hmTimeFormatter: 'HH:mm',
    
                // 年月日时分  设置 可选 默认:yyyy-MM-dd HH:mm
                ymdhmTimeFormatter: 'yyyy-MM-dd HH:mm',
    
                // 自定义多级不联动 必填
                customData: [
                    [
                        {id: 1, title: '战争女神', price: '1'},
                        {id: 2, title: '战争之王', price: '2'},
                        {id: 3, title: '琴瑟仙女', price: '3'},
                        {id: 4, title: '探险家', price: '4'},
                        {id: 5, title: '迅捷斥候', price: '5'},
                        {id: 6, title: '德玛西亚皇子', price: '6'},
                        {id: 7, title: '刀锋意志', price: '7'},
                    ],
                    [
                        {id: 8, title: '水银之靴', price: '8'},
                        {id: 9, title: '黑色切割者', price: '9'},
                        {id: 10, title: '振奋盔甲', price: '10'},
                        {id: 11, title: '荆棘之甲', price: '11'},
                        {id: 12, title: '日炎斗篷', price: '12'},
                    ],
                    [
                        {id: 13, title: '致命打击', price: '13'},
                        {id: 14, title: '勇气', price: '14'},
                        {id: 15, title: '裁决', price: '15'},
                        {id: 16, title: '德玛西亚正义', price: '16'},
    
                    ],
                    [
                        {id: 17, title: '蒙多', price: '17'},
                        {id: 18, title: '茂凯', price: '18'},
                        {id: 19, title: '潘森', price: '19'},
                        {id: 20, title: '伊泽瑞尔', price: '20'},
                        {id: 21, title: '提莫', price: '21'},
                        {id: 22, title: '嘉文四世', price: '22'},
                        {id: 23, title: '李青', price: '23'},
                        {id: 24, title: '盖伦', price: '24'},
                        {id: 25, title: '莫甘娜', price: '25'},
                        {id: 26, title: '安妮', price: '26'},
                        {id: 27, title: '赵信', price: '127'},
                    ],
                ],
    
                // 自定义多级联动 必填
                customLinkageData: [
                    {
                        id: '1',
                        title: '植物',
                        subs:[
                            {
                                id: '2',
                                title: '树木',
                                subs: [
                                    {
                                        id: '3',
                                        title: '乔木',
                                    },
                                    {
                                        id: '7',
                                        title: '灌木'
                                    },
                                ]
                            },
                        ]
                    },
                    {
                        id: '13',
                        title: '动物',
                        subs:[
                            {
                                id: '14',
                                title: '海洋',
                                subs: [
                                    {
                                        id: '15',
                                        title: '鲸鱼',
                                    },
                                    {
                                        id: '16',
                                        title: '鲨鱼'
                                    },
                                    {
                                        id: '17',
                                        title: '海豚'
                                    },
                                    {
                                        id: '18',
                                        title: '水母'
                                    },
                                    {
                                        id: '19',
                                        title: '海马'
                                    },
                                    {
                                        id: '20',
                                        title: '海狮'
                                    },
                                ]
                            },
                            {
                                id: '21',
                                title: '陆地',
                                subs: [
                                    {
                                        id: '22',
                                        title: '狮子',
                                    },
                                    {
                                        id: '23',
                                        title: '猴子'
                                    },
                                    {
                                        id: '24',
                                        title: '猎豹'
                                    },
                                    {
                                        id: '25',
                                        title: '大象'
                                    }
                                ]
                            },
                            {
                                id: '26',
                                title: '天空',
                                subs: [
                                    {
                                        id: '27',
                                        title: '秃鹫',
                                    },
                                    {
                                        id: '28',
                                        title: '雕'
                                    },
                                    {
                                        id: '29',
                                        title: '鹰'
                                    },
                                    {
                                        id: '30',
                                        title: '燕子'
                                    },
                                    {
                                        id: '31',
                                        title: '鸽子'
                                    }
                                ]
                            },
                        ]
                    },
                    {
                        id: '32',
                        title: '微生物',
                        subs:[
                            {
                                id: '33',
                                title: '原核',
                                subs: [
                                    {
                                        id: '34',
                                        title: '细菌',
                                    },
                                    {
                                        id: '35',
                                        title: '放线菌'
                                    },
                                    {
                                        id: '36',
                                        title: '螺旋体'
                                    },
                                    {
                                        id: '37',
                                        title: '支原体'
                                    },
                                    {
                                        id: '38',
                                        title: '立克次氏体'
                                    },
                                    {
                                        id: '39',
                                        title: '衣原体'
                                    },
                                ]
                            },
                            {
                                id: '40',
                                title: '真核',
                                subs: [
                                    {
                                        id: '41',
                                        title: '真菌',
                                    },
                                    {
                                        id: '42',
                                        title: '藻类'
                                    },
                                    {
                                        id: '43',
                                        title: '原生动物'
                                    }
                                ]
                            },
                            {
                                id: '44',
                                title: '非细胞类',
                                subs: [
                                    {
                                        id: '45',
                                        title: '病毒',
                                    },
                                    {
                                        id: '51',
                                        title: '亚病毒',
                                    }
                                ]
                            },
                        ]
                    },
                ]
            });
    

    方法回调

    
    省市区
    MultiplePicker.showPCAPicker().then((data)=>{
        console.log('data===',data)
    });
    
    时间
    MultiplePicker.showTimePicker().then((time)=>{
        console.log('time===',time)
    });
    
    多级
    MultiplePicker.showCustomPicker().then((data)=>{
        console.log('customData===',data)
    });
    

    multiplePicker
    等到android的写完了会在发布一个新的npm,到时候会再写篇文章记录下怎么用的~

    相关文章

      网友评论

      • 米亚流年:我之前也是使用react-native-picker 这个组件做选择器,使用特别麻烦,而且不能设置背景颜色,下载你的代码学习学习

      本文标题:RN-multiplePicker(iOS版)

      本文链接:https://www.haomeiwen.com/subject/ttpiaxtx.html