先說說自定義組件的作用及重要性。自定義組件就像原生開發(fā)里的自定義控件,通常具有可復(fù)用性,可移植性。本文將介紹一個最簡單的自定義組件:自定義單選框CheckBox,類似效果圖:

要寫類似的一個控件先整理一下思路,為了讓租件具有一定的可移植性,我們要給它暴漏一些屬性,比如:

text: 設(shè)置選項文字;textStyle: 設(shè)置選項文字的樣式,屬性類型為object;textAtBehind:設(shè)置選項文字在前還是選擇框在前;checked:設(shè)置是否被選擇;onClick:設(shè)置點擊事件。當(dāng)然還需要給這些屬性設(shè)置默認(rèn)值:

接下來,就是最重要的Render方法了:在render里要根據(jù)checked來判定放哪張圖片(選中還是未選中的圖片);還有根據(jù)textAtBehind來判定是選項文字在前還是在后;整個組件是可點擊的而且點擊之后要反選,那么最外層用TouchableHighlight,這里還需要把他的onPress點擊事件暴露出去,所以寫成:onPress = {this.onClick}。onClick()代碼如下:

整個Render方法就變得很簡單了,只需要return一個TouchableHighlight即可。
如果你在用戶注冊界面需要一個用戶選擇性別的控件,那么,首先 require 它:

然后添加state來獲取選中狀態(tài):

只需要用兩個CheckBox即可,但是由于性別是單選題,所以需要用戶做一下控制,當(dāng)male為YES就把female設(shè)為NO:

上面只是一個思路,源代碼代碼:在這里。希望對你有所幫助吧~