React-native國家名稱、電話、區號及國旗圖標列表

近期公司有個需求,在註冊時要選擇用戶所屬國家,本以爲小事一樁,結果百度發現並沒有RN的相關詞條,只能自己找一套列表和國旗圖標了,沒成想百度上免費的資源基本都不符合,符合的都是收費的(這種東西也值得收費無語),找了很久終於自己整理了一套可行的分享給大家:

首先分享我找到的一套國家列表及國旗圖標(有些沒有國家區號我就刪掉了)

鏈接:https://pan.baidu.com/s/1LdkPWwN6v6omXLCNPw2wmQ

提取碼:8m0s

下載下來有兩個文件 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

      }

  );

};

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章