react-native-element-textinputA react-native TextInput, TagsInput and AutoComplete component easy to customize for both iOS and Android.
Features
TextInput, TagsInput and AutoComplete in one package
Easy to use
Consistent look and feel on iOS and Android
Customizable font size, colors and animation duration
Implemented with typescript
Getting started npm install react- native- element- textinput -- save or
yarn add react- native- element- textinput Source code demo
Demo
TextInput extends TextInputProps
Props
Params
isRequire
default
mode
default or numeric or password
No
Switch mode textinput
style
ViewStyle
No
Styling for container view
label
String
No
Label for textinput
labelStyle
TextStyle
No
Styling for label text
placeholderStyle
TextStyle
No
Styling for placeholderStyle text
inputStyle
TextStyle
No
Styling for input view
textError
String
No
Text error
textErrorStyle
TextStyle
No
Styling for text error
showIcon
Boolean
No
Show or hide icon clear text
iconStyle
ImageStyle
No
Styling for icon clear text
focusColor
String
No
Color when focus to textinput
fontFamily
String
No
Customize font style
renderLeftIcon
() => JSX.Element
No
Customize left icon for textinput
renderRightIcon
() => JSX.Element
No
Customize right icon for textinput
HashtagInput extends TextInputProps
Props
Params
isRequire
default
style
ViewStyle
No
Styling for container view
label
String
No
Label for textinput
labelStyle
TextStyle
No
Styling for label text
placeholderStyle
TextStyle
No
Styling for placeholderStyle text
inputStyle
TextStyle
No
Styling for input view
textError
String
No
Text error
textErrorStyle
TextStyle
No
Styling for text error
showIcon
Boolean
No
Show or hide icon clear text
iconStyle
ImageStyle
No
Styling for icon clear text
focusColor
String
No
Color when focus to textinput
fontFamily
String
No
Customize font style
renderLeftIcon
() => JSX.Element
No
Customize left icon for textinput
renderRightIcon
() => JSX.Element
No
Customize right icon for textinput
data
String[]
No
Data is a plain array
hashtagStyle
ViewStyle
No
Styling for hashtash container view
hashtagTextStyle
TextStyle
No
Styling for hashtag text
onChangeValue
(string[]) => void
No
Callback that is called when submit value
renderHashtagItem
(item, unSelect?: () => void) => JSX.Element
No
Takes an item from data and renders it into the list selected
TagsInput extends TextInputProps
Props
Params
isRequire
default
style
ViewStyle
No
Styling for container view
label
String
No
Label for textinput
labelStyle
TextStyle
No
Styling for label text
placeholderStyle
TextStyle
No
Styling for placeholderStyle text
inputStyle
TextStyle
No
Styling for input view
textError
String
No
Text error
textErrorStyle
TextStyle
No
Styling for text error
showIcon
Boolean
No
Show or hide icon clear text
iconStyle
ImageStyle
No
Styling for icon clear text
focusColor
String
No
Color when focus to textinput
fontFamily
String
No
Customize font style
renderLeftIcon
() => JSX.Element
No
Customize left icon for textinput
renderRightIcon
() => JSX.Element
No
Customize right icon for textinput
data
String[]
No
Data is a plain array
tagsStyle
ViewStyle
No
Styling for hashtash container view
tagsTextStyle
TextStyle
No
Styling for hashtag text
onChangeValue
(string[]) => void
No
Callback that is called when submit value
renderTagsItem
(item, unSelect?: () => void) => JSX.Element
No
Takes an item from data and renders it into the list selected
AutoComplete extends TextInputProps
Props
Params
isRequire
default
data
String[]
No
Data is a plain array
style
ViewStyle
No
Styling for container view
label
String
No
Label for textinput
labelStyle
TextStyle
No
Styling for label text
placeholderStyle
TextStyle
No
Styling for placeholderStyle text
inputStyle
TextStyle
No
Styling for input view
textError
String
No
Text error
textErrorStyle
TextStyle
No
Styling for text error
showIcon
Boolean
No
Show or hide icon clear text
iconStyle
ImageStyle
No
Styling for icon clear text
focusColor
String
No
Color when focus to textinput
fontFamily
String
No
Customize font style
renderLeftIcon
() => JSX.Element
No
Customize left icon for textinput
renderRightIcon
() => JSX.Element
No
Customize right icon for textinput
renderItem
(item:string) => JSX.Element
No
Takes an item from data and renders it into the list
Example 1
import React, { useState } from 'react' ;
import { StyleSheet, View } from 'react-native' ;
import { TextInput } from 'react-native-element-textinput' ;
const TextInputComponent = ( ) => {
const [ value, setValue] = useState ( '' ) ;
return (
< View style= { styles. container} >
< TextInput
value= { value}
style= { styles. input}
inputStyle= { styles. inputStyle}
labelStyle= { styles. labelStyle}
placeholderStyle= { styles. placeholderStyle}
textErrorStyle= { styles. textErrorStyle}
label= "TextInput"
placeholder= "Placeholder"
placeholderTextColor= "gray"
focusColor= "blue"
onChangeText= { text => {
setValue ( text) ;
} }
/ >
< / View>
) ;
} ;
export default TextInputComponent;
const styles = StyleSheet. create ( {
container : {
padding : 16 ,
} ,
input : {
height : 55 ,
paddingHorizontal : 12 ,
borderRadius : 8 ,
borderWidth : 0.5 ,
borderColor : '#DDDDDD' ,
} ,
inputStyle : { fontSize : 16 } ,
labelStyle : {
fontSize : 14 ,
position : 'absolute' ,
top : - 10 ,
backgroundColor : 'white' ,
paddingHorizontal : 4 ,
marginLeft : - 4 ,
} ,
placeholderStyle : { fontSize : 16 } ,
textErrorStyle : { fontSize : 16 } ,
} ) ; Example 2
import React, { useState } from 'react' ;
import { StyleSheet, View } from 'react-native' ;
import { TextInput } from 'react-native-element-textinput' ;
const TextInputComponent = ( ) => {
const [ value, setValue] = useState ( '' ) ;
return (
< View style= { styles. container} >
< TextInput
value= { value}
style= { styles. input}
inputStyle= { styles. inputStyle}
labelStyle= { styles. labelStyle}
placeholderStyle= { styles. placeholderStyle}
textErrorStyle= { styles. textErrorStyle}
label= "TextInput"
placeholder= "Placeholder"
placeholderTextColor= "gray"
onChangeText= { text => {
setValue ( text) ;
} }
/ >
< / View>
) ;
} ;
export default TextInputComponent;
const styles = StyleSheet. create ( {
container : {
padding : 16 ,
} ,
input : {
height : 55 ,
paddingHorizontal : 12 ,
borderRadius : 8 ,
backgroundColor : 'white' ,
shadowColor : '#000' ,
shadowOffset : {
width : 0 ,
height : 1 ,
} ,
shadowOpacity : 0.2 ,
shadowRadius : 1.41 ,
elevation : 2 ,
} ,
inputStyle : { fontSize : 16 } ,
labelStyle : { fontSize : 14 } ,
placeholderStyle : { fontSize : 16 } ,
textErrorStyle : { fontSize : 16 } ,
} ) ; Example 3
import React, { useState } from 'react' ;
import { StyleSheet, View } from 'react-native' ;
import { TextInput } from 'react-native-element-textinput' ;
const TextInputComponent = ( ) => {
const [ value, setValue] = useState ( '' ) ;
return (
< View style= { styles. container} >
< TextInput
mode= "password"
value= { value}
style= { styles. input}
inputStyle= { styles. inputStyle}
labelStyle= { styles. labelStyle}
placeholderStyle= { styles. placeholderStyle}
textErrorStyle= { styles. textErrorStyle}
label= "Password"
placeholder= "Placeholder"
placeholderTextColor= "gray"
onChangeText= { text => {
setValue ( text) ;
} }
/ >
< / View>
) ;
} ;
export default TextInputComponent;
const styles = StyleSheet. create ( {
container : {
padding : 16 ,
} ,
input : {
height : 55 ,
paddingHorizontal : 12 ,
borderRadius : 8 ,
backgroundColor : 'white' ,
shadowColor : '#000' ,
shadowOffset : {
width : 0 ,
height : 1 ,
} ,
shadowOpacity : 0.2 ,
shadowRadius : 1.41 ,
elevation : 2 ,
} ,
inputStyle : { fontSize : 16 } ,
labelStyle : { fontSize : 14 } ,
placeholderStyle : { fontSize : 16 } ,
textErrorStyle : { fontSize : 16 } ,
} ) ; Example 4
import React, { useState } from 'react' ;
import { StyleSheet, View } from 'react-native' ;
import { HashtagInput } from 'react-native-element-textinput' ;
const TextInputComponent = ( ) => {
const [ value, setValue] = useState< string[ ] > ( [ ] ) ;
return (
< View style= { styles. container} >
< HashtagInput
data= { value}
style= { styles. input}
inputStyle= { styles. inputStyle}
labelStyle= { styles. labelStyle}
placeholderStyle= { styles. placeholderStyle}
textErrorStyle= { styles. textErrorStyle}
hashtagStyle= { styles. hashtagStyle}
hashtagTextStyle= { styles. hashtagTextStyle}
placeholder= "Hashtag..."
placeholderTextColor= "gray"
onChangeValue= { value => {
setValue ( value) ;
} }
/ >
< / View>
) ;
} ;
export default TextInputComponent;
const styles = StyleSheet. create ( {
container : {
padding : 16 ,
} ,
input : {
height : 55 ,
paddingHorizontal : 12 ,
borderRadius : 8 ,
backgroundColor : 'white' ,
shadowColor : '#000' ,
shadowOffset : {
width : 0 ,
height : 1 ,
} ,
shadowOpacity : 0.2 ,
shadowRadius : 1.41 ,
elevation : 2 ,
} ,
inputStyle : { fontSize : 16 } ,
labelStyle : { fontSize : 14 } ,
placeholderStyle : { fontSize : 16 } ,
textErrorStyle : { fontSize : 16 } ,
hashtagStyle : {
borderWidth : 0 ,
borderRadius : 16 ,
padding : 8 ,
backgroundColor : 'white' ,
shadowColor : '#000' ,
shadowOffset : {
width : 0 ,
height : 1 ,
} ,
shadowOpacity : 0.2 ,
shadowRadius : 1.41 ,
elevation : 2 ,
} ,
hashtagTextStyle : {
fontSize : 16 ,
} ,
} ) ; Example 5
import React, { useState } from 'react' ;
import { StyleSheet, View } from 'react-native' ;
import { TagsInput } from 'react-native-element-textinput' ;
const TextInputComponent = ( ) => {
const [ value, setValue] = useState ( [ ] ) ;
return (
< View style= { styles. container} >
< TagsInput
data= { value}
style= { styles. input}
inputStyle= { styles. inputStyle}
labelStyle= { styles. labelStyle}
placeholderStyle= { styles. placeholderStyle}
textErrorStyle= { styles. textErrorStyle}
tagsStyle= { styles. tagsStyle}
tagsTextStyle= { styles. tagsTextStyle}
label= "TagsInput"
placeholder= "Tags..."
placeholderTextColor= "gray"
onChangeValue= { value => {
setValue ( value) ;
} }
/ >
< / View>
) ;
} ;
export default TextInputComponent;
const styles = StyleSheet. create ( {
container : {
padding : 16 ,
} ,
input : {
paddingHorizontal : 12 ,
borderRadius : 8 ,
backgroundColor : 'white' ,
shadowColor : '#000' ,
shadowOffset : {
width : 0 ,
height : 1 ,
} ,
shadowOpacity : 0.2 ,
shadowRadius : 1.41 ,
elevation : 2 ,
} ,
inputStyle : {
fontSize : 16 ,
minWidth : 80 ,
} ,
labelStyle : {
fontSize : 14 ,
position : 'absolute' ,
top : - 10 ,
backgroundColor : 'white' ,
paddingHorizontal : 4 ,
marginLeft : - 4 ,
} ,
placeholderStyle : { fontSize : 16 } ,
textErrorStyle : { fontSize : 16 } ,
tagsStyle : {
borderWidth : 0 ,
borderRadius : 16 ,
padding : 8 ,
backgroundColor : 'white' ,
shadowColor : '#000' ,
shadowOffset : {
width : 0 ,
height : 1 ,
} ,
shadowOpacity : 0.2 ,
shadowRadius : 1.41 ,
elevation : 2 ,
} ,
tagsTextStyle : {
fontSize : 16 ,
} ,
} ) ; Example 6
import React, { useState } from 'react' ;
import { StyleSheet, View } from 'react-native' ;
import { AutoComplete } from 'react-native-element-textinput' ;
const TextInputComponent = ( ) => {
const [ value, setValue] = useState ( '' ) ;
return (
< View style= { styles. container} >
< AutoComplete
value= { value}
data= { [ 'hello' , 'how are you' , 'complete' ] }
style= { styles. input}
inputStyle= { styles. inputStyle}
labelStyle= { styles. labelStyle}
placeholderStyle= { styles. placeholderStyle}
textErrorStyle= { styles. textErrorStyle}
label= "Auto Complete"
placeholder= "Placeholder..."
placeholderTextColor= "gray"
onChangeText= { e => {
setValue ( e) ;
} }
/ >
< / View>
) ;
} ;
export default TextInputComponent;
const styles = StyleSheet. create ( {
container : {
padding : 16 ,
} ,
input : {
height : 55 ,
paddingHorizontal : 12 ,
borderRadius : 8 ,
backgroundColor : 'white' ,
shadowColor : '#000' ,
shadowOffset : {
width : 0 ,
height : 1 ,
} ,
shadowOpacity : 0.2 ,
shadowRadius : 1.41 ,
elevation : 2 ,
} ,
inputStyle : { fontSize : 16 } ,
labelStyle : { fontSize : 14 } ,
placeholderStyle : { fontSize : 16 } ,
textErrorStyle : { fontSize : 16 } ,
} ) ; My Channel ✨