Text
A React component for displaying text.
Text
supports nesting, styling, and touch handling.
In the following example, the nested title and body text will inherit the fontFamily
from styles.baseText
, but the title provides its own additional styles. The title and body will stack on top of each other on account of the literal newlines:
Props
onPress
accessible
numberOfLines
onLayout
onLongPress
lineBreakMode
style
testID
selectable
allowFontScaling
suppressHighlighting
Reference
Props
onPress
This function is called on press.
e.g., `onPress={() => console.log('1st')}``
Type | Required |
---|---|
function | No |
accessible
When set to true
, indicates that the view is an accessibility element. The default value for a Text
element is true
.
See the Accessibility guide for more information.
Type | Required |
---|---|
bool | No |
numberOfLines
Used to truncate the text with an ellipsis after computing the text layout, including line wrapping, such that the total number of lines does not exceed this number.
This prop is commonly used with lineBreakMode
.
Type | Required |
---|---|
number | No |
onLayout
Invoked on mount and layout changes with
{nativeEvent: {layout: {x, y, width, height}}}
Type | Required |
---|---|
function | No |
onLongPress
This function is called on long press.
e.g., `onLongPress={this.increaseSize}>``
Type | Required |
---|---|
function | No |
lineBreakMode
Line Break mode. This can be one of the following values:
head
- The line is displayed so that the end fits in the container and the missing text at the beginning of the line is indicated by an ellipsis glyph. e.g., "...wxyz"middle
- The line is displayed so that the beginning and end fit in the container and the missing text in the middle is indicated by an ellipsis glyph. "ab...yz"tail
- The line is displayed so that the beginning fits in the container and the missing text at the end of the line is indicated by an ellipsis glyph. e.g., "abcd..."clip
- Lines are not drawn past the edge of the text container.
The default is tail
.
numberOfLines
must be set in conjunction with this prop.
clip
is working only for iOS
Type | Required |
---|---|
enum('head', 'middle', 'tail', 'clip') | No |
style
Type | Required |
---|---|
style | No |
textShadowColor
: colorcolor
: colorfontSize
: numberfontStyle
: enum('normal', 'italic')fontWeight
: enum('normal', 'bold', '100', '200', '300', '400', '500', '600', '700', '800', '900')Specifies font weight. The values 'normal' and 'bold' are supported for most fonts. Not all fonts have a variant for each of the numeric values, in that case the closest one is chosen.
lineHeight
: numbertextAlign
: enum('auto', 'left', 'right', 'center', 'justify')Specifies text alignment. The value 'justify' is only supported on iOS and fallbacks to
left
on Android.textDecorationLine
: enum('none', 'underline', 'line-through', 'underline line-through')fontFamily
: stringtextShadowOffset
: object: {width: number,height: number}textShadowRadius
: numbertextAlignVertical
: enum('auto', 'top', 'bottom', 'center') (Android)letterSpacing
: number (iOS)textDecorationColor
: color (iOS)textDecorationStyle
: enum('solid', 'double', 'dotted', 'dashed') (iOS)writingDirection
: enum('auto', 'ltr', 'rtl') (iOS)
testID
Used to locate this view in end-to-end tests.
Type | Required |
---|---|
string | No |
selectable
Lets the user select text, to use the native copy and paste functionality.
Type | Required | Platform |
---|---|---|
bool | No | Android |
allowFontScaling
Specifies whether fonts should scale to respect Text Size accessibility setting on iOS. The default is true
.
Type | Required | Platform |
---|---|---|
bool | No | iOS |
suppressHighlighting
When true
, no visual change is made when text is pressed down. By default, a gray oval highlights the text on press down.
Type | Required | Platform |
---|---|---|
bool | No | iOS |