TextInput

A component to allow users to input text.

Flat (focused)
Flat (disabled)
Outlined (focused)
Outlined (disabled)

Usage

import * as React from 'react';
import { TextInput } from 'react-native-paper';

export default class MyComponent extends React.Component {
  state = {
    text: ''
  };

  render(){
    return (
      <TextInput
        label='Email'
        value={this.state.text}
        onChangeText={text => this.setState({ text })}
      />
    );
  }
}

Props

mode
Type: 'flat' | 'outlined'
Default value: 'flat'

Mode of the TextInput.

  • flat - flat input with an underline.
  • outlined - input with an outline.

In outlined mode, the background color of the label is derived from colors.background in theme or the backgroundColor style.

disabled
Type: boolean
Default value: false

If true, user won't be able to interact with the component.

label
Type: string

The text to use for the floating label.

placeholder
Type: string

Placeholder for the input.

error
Type: boolean
Default value: false

Whether to style the TextInput with error style.

onChangeText
Type: Function

Callback that is called when the text input's text changes. Changed text is passed as an argument to the callback handler.

underlineColor
Type: string

Underline color of the input.

multiline
Type: boolean
Default value: false

Whether the input can have multiple lines.

numberOfLines
Type: number

The number of lines to show in the input (Android only).

onFocus
Type: () => mixed

Callback that is called when the text input is focused.

onBlur
Type: () => mixed

Callback that is called when the text input is blurred.

render (required)
Type: (props: RenderProps) => React.Node
Default value: props => <NativeTextInput {...props} />

Callback to render a custom input component such as react-native-text-input-mask instead of the default TextInput component from react-native.

Example:

<TextInput
  label="Phone number"
  render={props =>
    <TextInputMask
      {...props}
      mask="+[00] [000] [000] [000]"
    />
  }
/>
value
Type: string

Value of the text input.

style
Type: any
theme
Type: Theme
editable
Default value: true
...TextInput props

Methods

isFocused

Returns true if the input is currently focused, false otherwise.

clear

Removes all text from the TextInput.

focus

Focuses the input.

blur

Removes focus from the input.