從移動開發的角度來講,iOS和Android都有本身的一些UI特性,因此react-native宣稱的寫一套代碼就能夠通用就是騙人的鬼話,實際開發中,你會發現不少控件在iOS和Android上展現的效果不同,或者有些屬性支持iOS不支持Android。react-native早期是隻支持iOS的,後來才支持的Android,因此直到如今react-native對iOS平臺的支持仍是比Android平臺要友好。react
underlineColorAndroid='transparent'
屬性,去掉Android系統下默認的線。實際開發的過程當中,會發現有一些方法,針對iOS有效果,Android平臺上,運行結果卻不同,這種狀況下,要麼再找一個兩端都支持的,要麼就是針對不一樣的平臺用不一樣的方法。android
startWith()
判斷字符串的前綴的,實際開發中的,發如今iOS平臺運行結果正確,Android運算結果不正確,打印數據,發現數據是正確的。因而就發現了startWith()
對於android的http連接判斷不起做用,改用indexOf()
這個包含字符串的方法後,兩端的運行結果都正確了。redux框架採用狀態判斷的形式進行業務邏輯的處理。實際開發的工程中,必定要保證業務邏輯判斷的狀態不能有相同的狀況,不然很出現一些靈異的bug。我在開發登陸&註冊流程時,當時由於是不一樣的頁面,用的狀態的判斷是同樣的(註冊時的輸入驗證碼和忘記密碼時的輸入驗證碼,跳轉邏輯同樣)。因爲redux的AppState狀態是全局的,並且註冊到忘記這條線,走的是push頁面的方式。忘記密碼的時候,出現了push兩次輸入密碼框頁面的狀況,找了很久,經過打印頁面的跳轉方式,才從這個坑,從裏面爬出來。正則表達式
這個bug出現的緣由是對redux這種全局狀態機制不瞭解,沒有把已經入棧頁面的狀態判斷方法屏蔽掉,致使後面走忘記密碼的時候,註冊頁面的跳轉密碼框的狀態知足的狀況下,也進行了跳轉。redux
使用react-native進行開發,你必定要作好隨時遇到坑的準備,時刻準備着去填坑。react-native開發的路很漫長,過了這山還有那山。react-native