TextArea
Multiline text input. Shares the same visual states and shape options as Input. Use for longer-form content: bios, messages, descriptions, comments.
When to use: Any free-form text that may span multiple lines.
When not to use: Single-line inputs — use Input. Tag entry — use TagInput.
Import
Section titled “Import”import { TextArea } from '@/components';<TextArea value={bio} onChangeText={setBio} placeholder="Tell us about yourself…" numberOfLines={4}/>| Prop | Type | Default | Description |
|---|---|---|---|
value | string | — | Controlled value (required) |
onChangeText | (text: string) => void | — | Change handler (required) |
placeholder | string | — | Placeholder text |
numberOfLines | number | 3 | Visible line height |
isError | boolean | false | Error state styling |
isDisabled | boolean | false | Prevents interaction |
shape | 'default' | 'pill' | 'default' | Border radius (default is more appropriate for TextArea) |
testID | string | — | For testing |
Example
Section titled “Example”<TextArea value={message} onChangeText={setMessage} placeholder="Write a message to your team…" numberOfLines={6} isError={!!messageError}/>{messageError && <Text variant="caption" color="error">{messageError}</Text>}