TextInput組件允許用戶在應用中通過鍵盤輸入文本信息,其使用方法和Text、Image一樣簡單,實例代碼如下:
<TextInput placeholder={'請輸入用戶名'} style={styles01.inputStyle} underlineColorAndroid={'transparent'}/>
<TextInput placeholder={'請輸入密碼'} secureTextEntry={true} style={styles01.inputStyle} underlineColorAndroid={'transparent'}/>
TextInput組件的屬性如下表:
名稱 | 作用 | 值 | 平台 |
---|---|---|---|
autoCapitalize | 自動切換成大寫 | enum(‘none’,’sentences’,’words’,’characters’) none:不自動切換任何字符成大寫;sentences:默認每個句子的首字母變成大寫;words:每個字母的首字母變成大寫;characters:每個字母全部變成大寫 | iOS、Android |
autoCorrent | 設置拼寫自動修正功能,默認為開啟(true) | bool | iOS、Android |
autoFocus | 設置是否默認獲取到焦點,默認為關閉(false),componentDidMount方法被調用之后才會獲取焦點(componentDidMount是React組件被渲染之后React系統回調的方法) | bool | iOS、Android |
defaultValue | 給文本輸入設置一個默認初始值 | string | iOS、Android |
editable | 設置文本框是否可以編輯 | bool | iOS、Android |
keyboardType | 鍵盤類型:用來選擇默認彈出鍵盤的類型,例如指定numeric就是彈出數字鍵盤。 | ‘default’, ‘email-address’, ‘numeric’, ‘phone-pad’, ‘ascii-capable’, ‘numbers-and-punctuation’, ‘url’, ‘number-pad’, ‘name-phone-pad’, ‘decimal-pad’, ‘twitter’, ‘web-search’,鑒於平台的原因如下的值是所有平台都可以進行通用:default,numeric,email-address | iOS、Android |
maxLength | 限制文本輸入框最大的輸入字符長度 | number | iOS、Android |
multiline | 設置可以輸入多行文字,默認為false(表示無論文本輸入多少,都是單行顯示) | bool | iOS、Android |
onBlur | 監聽方法,文本框失去焦點回調方法 | function | iOS、Android |
onChange | 監聽方法,文本框內容發生改變回調方法 | function | iOS、Android |
onChangeText | 監聽方法,文本框內容發生改變回調方法,該方法會進行傳遞文本內容 | function | iOS、Android |
onEndEditing | 監聽方法,當文本結束文本輸入回調方法 | function | iOS、Android |
onFocus | 監聽方法 文本框獲取到焦點回調方法 | function | iOS、Android |
onLayout | 監聽方法 組價布局發生變化的時候調用,調用方法參數為 {nativeFunction:{x,y,width,height}} | function | iOS、Android |
onSelectionChange | 監聽方法 當Text input選中狀態被改變時調用 | function | iOS、Android |
onSubmitEditing | 監聽方法,當編輯提交的時候回調方法。不過如果multiline={true}的時候,該屬性就不生效 | function | iOS、Android |
placeholder | 當文本輸入框還沒有任何輸入的時候,默認顯示信息,當有輸入的時候該值會被清除 | string | iOS、Android |
placeholderTextColor | 設置placeholderText顏色 | string | iOS、Android |
returnKeyType | 決定return鍵怎么顯示 | enum(‘done’, ‘go’, ‘next’, ‘search’, ‘send’, ‘none’, ‘previous’, ‘default’, ‘emergency-call’, ‘google’, ‘join’, ‘route’, ‘yahoo’)。雙平台適用:done、go、next、search、send;Android:none、previous;iOS:default、emergency-call、google、join、route、yahoo | iOS、Android |
secureTextEntry | 設置是否為密碼安全輸入框 | bool,默認為false | iOS、Android |
selectTextOnFocus | 如果為true,當獲得焦點,自動選中所有文本 | bool | iOS、Android |
selectionColor | 輸入框文本的高亮顏色(iOS中包括光標) | string | iOS、Android |
value | 組件中的值 | string | iOS、Android |
numberOfLines | 設置TextInput的行數,multiline設置為true,並結合該屬性能夠滿足多行的TextInput | number | Android |
returnKeyLabel | 設置return鍵為文本組件,利用它替換returnKeyType | string | android |
underlineColorAndroid | 設置TextInput的下划線顏色 | string | android |
clearButtonMode | 清除按鈕模式,設置何時應該在TextInput右邊出現清除按鈕 | enum(‘never’, ‘while-editing’, ‘unless-editing’, ‘always’) | iOS |
clearTextOnFocus | 如果為true,當編輯開始自動清除TextInput文本內容 | bool | iOS |
enablesReturnKeyAutomatically | 如果為true,當沒有輸入文本鍵盤的return鍵自動失效,當輸入文本鍵盤的return鍵自動生效,默認值是false | bool | iOS |
keyboardAppearance | 設置鍵盤的顏色 | enum(‘default’, ‘light’, ‘dark’) | iOS |
onKeyPress | 當任何一個鍵被按時調用,被按的鍵的值作為一個實參傳入function,在onChange被調用之前先執行 | function | iOS |
selectionState | 請看DocumentSelectionState.js一些狀態負責維持一個文檔的選中信息(我也不懂什么意思,官網翻譯的。) | DocumentSelectionState | iOS |
TextInput組件還有如下方法:
isFocused() :判斷當前的TextInput組件是否獲取了焦點。
clear() :清空TextInput組件中的文本內容。