美文网首页React Native开发React Native开发经验集
React-native国家名称、电话、区号及国旗图标列表

React-native国家名称、电话、区号及国旗图标列表

作者: 此生唯一自传 | 来源:发表于2020-01-10 17:36 被阅读0次

近期公司有个需求,在注册时要选择用户所属国家,本以为小事一桩,结果百度发现并没有RN的相关词条,只能自己找一套列表和国旗图标了,没成想百度上免费的资源基本都不符合,符合的都是收费的(这种东西也值得收费无语),找了很久终于自己整理了一套可行的分享给大家:

首先分享我找到的一套国家列表及国旗图标(有些没有国家区号我就删掉了)

https://pan.baidu.com/s/19oQaCI25usZhwta07cmCaA

下载下来有两个文件 country.jsimgArray.js 和一个文件夹countryFlag 。其中country.js用于存放国家中英文名称、区号、电话编码,imgArray.js是针对react-native处理过的国旗列表,如果不这么处理直接引用是会报错的;countryFlag文件夹是国旗图标文件夹。

使用方法:

将这两个文件和国旗图标文件夹复制到你项目中合适的位置,打开imgArray.js文件,因为每个人存放文件位置不同,你需要全局修正引用的国旗图标的路径(别说你不会全局查找替换)

在你需要使用国家列表的地方import导入country.js 和 imgArray.js这两个文件,然后使用就很简单啦,只要注意图片的引用路径,这里举例:

import countryList from './country'; 

import imgArray from './imgArray';

// 大家应该都是用Flatlist列表吧

<FlatList data={ countryList } renderItem={this._renderItem} alighSelf={'stretch'} style={styles.itemMainBox}/>

// 选择城市 条目布局

_renderItem=({ item })=>{

const { language } =this.state; //我的项目需要根据语言环境选择对应国家中英文名称

  return (

      {

          item.locale !==' ' ?

         <TouchableOpacity onPress={()=>this._countryChosen(item)}>

            <View style={[basic.p10, basic.fs14, basic.bb1Black, basic.flexRow, ]}>

              <Image source={imgArray[item.locale.toLowerCase()]}style={styles.countryFlagImg}/>  //取出对应的国旗图标

              <Text style={[basic.fcw, basic.ml20]}>{language ==='zh' ? item.zh : item.en} +{item.code}

          </TouchableOpacity> :null

      }

  );

};

相关文章

网友评论

    本文标题:React-native国家名称、电话、区号及国旗图标列表

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