RN学习之Picker&PickeriOS

import React, { Component } from 'react';
import { 
  View,
  Text,
  Picker,
  PickerIOS,
  ScrollView,
} from 'react-native';

var PickerItemIOS = PickerIOS.Item;

var CAR_MAKES_AND_MODELS = {
  amc:{
    name: "AMC",
    models: ["AMX","Concord","Eagle","Gremlin","Matador","Pacer"]
  },
  alfa:{
    name: "Alfa-Rameo",
    models: ['159', '4C', 'Alfasud', 'Brera', 'GTV6', 'Giulia', 'MiTo', 'Spider'],
  },
  aston: {
    name: 'Aston Martin',
    models: ['DB5', 'DB9', 'DBS', 'Rapide', 'Vanquish', 'Vantage'],
  },
  audi: {
    name: 'Audi',
    models: ['90', '4000', '5000', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8', 'Q5', 'Q7'],
  },
  austin: {
    name: 'Austin',
    models: ['America', 'Maestro', 'Maxi', 'Mini', 'Montego', 'Princess'],
  },
  borgward: {
    name: 'Borgward',
    models: ['Hansa', 'Isabella', 'P100'],
  },
  buick: {
    name: 'Buick',
    models: ['Electra', 'LaCrosse', 'LeSabre', 'Park Avenue', 'Regal',
             'Roadmaster', 'Skylark'],
  },
  cadillac: {
    name: 'Cadillac',
    models: ['Catera', 'Cimarron', 'Eldorado', 'Fleetwood', 'Sedan de Ville'],
  },
  chevrolet: {
    name: 'Chevrolet',
    models: ['Astro', 'Aveo', 'Bel Air', 'Captiva', 'Cavalier', 'Chevelle',
             'Corvair', 'Corvette', 'Cruze', 'Nova', 'SS', 'Vega', 'Volt'],
  }
};

class PickerView extends Component {
  constructor(props) {
    super(props);
    this.state = {
        language:"java",
        languageIndex:0,
        selectCourse:'java',
        selectIndex:1,
        carMake:"cadillac",
        modelIndex: 3,
    };
    console.log(this.props.value1)
    console.log("----",Object.keys(CAR_MAKES_AND_MODELS))  //打印字典的所有key值
  }

  

  render() {
    var make = CAR_MAKES_AND_MODELS[this.state.carMake];
    var selectionString = make.name + '' + make.models[this.state.modelIndex]
    return (
      <ScrollView>
      <Text style={{fontSize: 16,}}>{this.state.language}+"__"+{this.state.languageIndex}</Text>
          <Picker
             selectedValue={this.state.language}
             onValueChange={ (lang,index) => this.setState({language:lang,languageIndex:index})}
          >
         <Picker.Item label="Java" value="java"></Picker.Item>
         <Picker.Item label="JaveScript" value="js"></Picker.Item>
        </Picker>

      <Text style={{fontSize: 16,}}>"简单的PickerIos"+{this.state.selectCourse}+"__"+{this.state.selectIndex}</Text>
        <PickerIOS
          itemStyle={{fontSize:25,color:'red',textAlign:'center',fontWeight:'bold'}}
          selectedValue={this.state.selectCourse}
          onValueChange={(selectedCourse, selectedIndex) => {this.setState({selectCourse:selectedCourse, selectIndex:selectedIndex})}}
        >
          <PickerItemIOS
            key='0'
            value="C++"
            label="c++"
          ></PickerItemIOS>
           <PickerItemIOS
              key='1'
              value='Java'
              label='java'
            />
            <PickerItemIOS
              key='2'
              value='Android'
              label='android'
            />
             <PickerItemIOS
              key='3'
              value='IOS'
              label='iOS'
            />
             <PickerItemIOS
              key='4'
              value='React Native'
              label='react Native'
            />
            <PickerItemIOS
              key='5'
              value='Swift'
              label='swift'
            />
            <PickerItemIOS
              key='5'
              value='.Net'
              label='.net'
            />
        </PickerIOS>



         <Text style={{fontSize: 25,}}>please choose a make for your car:{this.state.carMake}</Text>
        <PickerIOS
          selectedValue={this.state.carMake}
          onValueChange={ (item) => this.setState({carMake:item,modelIndex: 0})}
        >
        {/* 这里是有map函数变量了CAR_MAKES_AND_MODELS对象中的keys值 ,label显示对应key值的name属性 */}
        {Object.keys(CAR_MAKES_AND_MODELS).map( (itemKey) => (
          <PickerItemIOS 
            key={itemKey}
            value={itemKey}
            label={CAR_MAKES_AND_MODELS[itemKey].name}  
          />
        ))}
        </PickerIOS>

        <Text style={{fontSize: 25,}}>please choose a model of :{make.name}</Text>
        <PickerIOS
          selectedValue={this.state.modelIndex}
          key={this.state.carMake}  
          onValueChange={ (index) => {this.setState({modelIndex:index})}}
        >
        {/* 这里map遍历的是models数组,modelName为数组的value,modelIndex数组位置 */}
          {CAR_MAKES_AND_MODELS[this.state.carMake].models.map( (modelName,modelIndex) => (
            <PickerItemIOS
            key={this.state.carMake + "_" + modelIndex}
            value={modelIndex}
            label={modelName}
          ></PickerItemIOS>
          ))}
        </PickerIOS>
        
      </ScrollView>
    );
  }
}

export default PickerView;


Simulator Screen Shot - iPhone 6 - 2018-11-01 at 11.49.14.png
?著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,172评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,346评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事?!?“怎么了?”我有些...
    开封第一讲书人阅读 159,788评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,299评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,409评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,467评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,476评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,262评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,699评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,994评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,167评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,827评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,499评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,149评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,387评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,028评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,055评论 2 352

推荐阅读更多精彩内容

  • 我们显示必然要使用到component,React.Component 是一个抽象的Class,通常继承该类来构建...
    AnonyPer阅读 5,429评论 5 3
  • 在学习RN的时候,想模拟一般的闪屏,倒计时3S之后跳转到主页,研究了一下RN中的定时器,记录如下: 每一个Comp...
    AnonyPer阅读 3,376评论 0 5
  • 接触了RN之后,必不可免得要接触界面之间跳转之类的需求,而这一类需求的实现必须要使用到Navigator这个导航器...
    AnonyPer阅读 1,169评论 0 0
  • 学习了RN的基本内容,虽然可以开发个全RN的项目,但基本上没有完全来使用RN构建一个项目的,都要使用到RN和本地的...
    AnonyPer阅读 2,142评论 3 8
  • 睡意泛起了涟漪 困倦掩去了笑意 没理由 不睡去 燥热的天气 潮湿的空气 都化作浓浓的困意 没理由 不睡去 大脑在呐...
    写手沈然阅读 271评论 0 1