Accéder directement au contenu
Créez un compte
ou
connecter-vous
Logo de la documentation Stripe
/
Demander à l'assistant IA
Créez un compte
Connectez-vous
Démarrer
Paiements
Revenus
Plateformes et places de marché
Gestion de fonds
Outils de développement
Aperçu
Gestion des versions
Journal des modifications
Mettre à niveau votre version de l'API
Actualiser votre version du SDK
Outils de développement
SDK
API
Tests
Workbench
Destinations d'événements
Workflows
CLI Stripe
Shell Stripe
Dashboard des développeurs
Boîte à outils des agents
Intégrer des LLMStripe pour Visual Studio CodeAlertes d'intégrité de StripeChargements de fichiers
Sécurité et confidentialité
Sécurité
Confidentialité
Extensions Stripe
Stripe Apps
    Présentation
    Démarrer
    Créer une application
    Fonctionnement de Stripe Apps
    Exemples d'application
    Créer une application
    Enregistrer des clés secrètes
    Méthodes d'authentification de l'API
    Flux d'autorisation
    Logique côté serveur
    Écouter les événements
    Gérer différents modes
    Activer la prise en charge de l'environnement de test
    Page des paramètres d'application
    Concevoir une interface utilisateur
    Inscription des utilisateurs
    Distribuer votre application
    Options de distribution
    Charger votre application
    Versions
    Tester votre application
    Publier votre application
    Faire la promotion de votre application
    Ajouter des liens profonds
    Créer des liens d'installation
    Assigner des rôles dans les extensions d'interface utilisateur
    Actions post-installation
    Analyses de l'application
    Composants intégrés pour les applications
    Intégrer des applications tierces conçues pour Stripe
    Migrer vers Stripe Apps
    Migrer ou développer une extension
    Migrer un plugin vers Stripe Apps ou Stripe Connect
    Référence
    Manifeste de l'application
    Interface de ligne de commande
    SDK d'extension
    Autorisations
    Fenêtres d'affichage
    Modèles de conception
    Composants
      Accordéon
      Badge
      Bannière
      BarChart
      Composant box
      Bouton
      ButtonGroup
      Case à cocher
      Puce
      ContextView
      DateField
      Séparateur
      FocusView
      FormFieldGroup
      Icône
      Img
      Inline
      LineChart
      Link
      Liste
      Menu
      PropertyList
      Radio
      Sélectionner
      SettingsView
      SignInView
      Sparkline
      Indicateur de chargement
      Changer
      Table
      Onglets
      Liste des tâches
      TextArea
      TextField
      Message transitoire
      Infobulle
Connecteurs Stripe
Partenaires
Partner ecosystem
Certification des partenaires
AccueilOutils de développementStripe AppsComponents

Remarque

Cette page n'est pas encore disponible dans cette langue. Nous faisons tout notre possible pour proposer notre documentation dans davantage de langues et nous vous fournirons la version traduite dès qu'elle sera disponible.

TextArea component for Stripe Apps

Use TextArea to create an input field for multiple lines of text.

Copier la page

To add the TextArea component to your app:

import {TextArea} from '@stripe/ui-extension-sdk/ui';
Chargement de l'exemple...
<TextArea label="Description" placeholder="Acme Inc was founded in…" defaultValue="Stripe Apps lets you embed custom…" onChange={(e) => { console.log(e.target.value); }} />

TextArea props

PropertyType

autoComplete

Optional

string | undefined

Specifies one of the possible autocomplete behaviors.

autoFocus

Optional

boolean | undefined

If true, React will focus the element on mount.

cols

Optional

number | undefined

css

Optional

CSS | undefined

Related types: CSS.

defaultValue

Optional

string | undefined

Specifies the initial value that a user can change.

description

Optional

string | undefined

Descriptive text that will be rendered adjacent to the control’s label.

disabled

Optional

boolean | undefined

Sets whether or not the element should be disabled. Prevents selection.

error

Optional

string | undefined

Error text that will be rendered below the control.

form

Optional

string | undefined

Specifies the id of the <form> this input belongs to. If omitted, it’s the closest parent form.

hiddenElements

Optional

("label" | "description" | "error")[] | undefined

Visually hides the specified elements. The hidden elements will still be present and visible to screen readers.

invalid

Optional

boolean | undefined

Sets whether or not the element is in an invalid state. This is a display-only prop, and will not prevent form submission.

label

Optional

React.ReactNode

Text that describes the control. Will be both visible and clickable.

maxLength

Optional

number | undefined

Specifies the maximum length of text.

minLength

Optional

number | undefined

Specifies the minimum length of text.

name

Optional

string | undefined

Specifies the name for this input that’s submitted with the form.

onChange

Optional

((event: React.ChangeEvent<HTMLInputElement>) => void) | undefined

Required for controlled inputs. Fires immediately when the input’s value is changed by the user (for example, it fires on every keystroke). Behaves like the browser input event.

onKeyDown

Optional

((event: React.KeyboardEvent<HTMLInputElement>) => void) | undefined

Fires when a key is pressed.

onKeyUp

Optional

((event: React.KeyboardEvent<HTMLInputElement>) => void) | undefined

Fires when a key is released.

placeholder

Optional

string | undefined

Displayed in a dimmed color when the input value is empty.

readOnly

Optional

boolean | undefined

If true, the input is not editable by the user.

required

Optional

boolean | undefined

If true, the value must be provided for the form to submit.

resizeable

Optional

boolean | undefined

rows

Optional

number | undefined

size

Optional

("small" | "medium" | "large") | undefined

The size of the component.

spellCheck

Optional

boolean | "true" | "false" | undefined

If explicitly set to true or false, enables or disables spellchecking.

tabIndex

Optional

number | undefined

Overrides the default tab key behavior. Avoid using values other than -1 and 0.

value

Optional

string | undefined

Controls the input’s text. When you pass this prop, you must also pass an onChange handler that updates the passed value.

wrap

Optional

string | undefined

onKeyPress

OptionalDeprecated

((event: React.KeyboardEvent<HTMLInputElement>) => void) | undefined

CSS

PropertyType

width

Optional

(number | "auto" | "fill" | "min" | "max" | "fit" | "1/2" | "1/3" | "2/3" | "1/4" | "2/4" | "3/4" | "1/5" | "2/5" | "3/5" | "4/5" | "1/6" | "2/6" | "3/6" | "4/6" | "5/6" | "1/12" | "2/12" | "3/12" | "4/12" | "5/12" | "6/12" | "7/12" | "8/12" | "9/12" | "10/12" | "11/12") | undefined

The width of the component. See Sizing for details.

Invalid

You can mark a TextArea as invalid by setting the invalid prop on the element. This is purely visual. It defaults to false.

Chargement de l'exemple...
<TextArea label="Favorite word" defaultValue="Stripe Apps lets you embed custom…" invalid />

Resizeable

By default, TextArea is vertically resizable. Users who need more space typically prefer this. If you need to prevent the element from resizing, set resizeable to false.

Chargement de l'exemple...
<TextArea label="Resizable bio" defaultValue="Stripe Apps lets you embed custom…" /> <TextArea label="Unresizable bio" resizeable={false} defaultValue="Stripe Apps lets you embed custom…" />

Size

Changing the size allows you to choose variants with slightly more or slightly less room than the default. In general you don’t want to mix and match different sizes within the same form. The default is medium.

Chargement de l'exemple...
<TextArea label="Description (large)" size="large" defaultValue="Stripe Apps lets you embed custom…" /> <TextArea label="Description (medium, default)" size="medium" defaultValue="Stripe Apps lets you embed custom…" /> <TextArea label="Description (small)" size="small" defaultValue="Stripe Apps lets you embed custom…" />

Disable and read only

You can mark a field as disabled, which prevents any interaction and changes the styling. Disabled means that no data from that form element is submitted when the form is submitted.

You can also make a field as readOnly. Read-only means any data from within the element is submitted, but the user can’t change it.

Chargement de l'exemple...
<TextArea label="Disabled" defaultValue="Stripe Apps lets you embed custom…" disabled /> <TextArea label="Readonly" defaultValue="Stripe Apps lets you embed custom…" readOnly />

Rows

A TextArea uses rows to control its height rather than using a traditional height in pixels, just like a regular <TextArea />. This allows the element to size itself based on multiples of the font size, rather than a raw pixel value. It prevents text from being partially obscured by default.

The vertical height of your TextArea component also changes depending on what size value you set, because that changes the line height of the text inside the input.

Chargement de l'exemple...
<TextArea label="Description (3 rows, default)" defaultValue="Stripe Apps lets you embed custom…" /> <TextArea label="Description (6 rows)" rows={6} defaultValue="Stripe Apps lets you embed custom…" />

State management

Use the TextArea component as an uncontrolled input:

Chargement de l'exemple...
<TextArea onChange={(e) => { console.log(e); }} label="About your business" placeholder="Our business is…" />

Width

Set the width of a TexaArea component using the available values with the css prop:

Chargement de l'exemple...
<TextArea label="App feedback" defaultValue="Stripe Apps lets you embed custom…" css={{width: 'fill'}} />

Voir aussi

  • Design patterns to follow
  • Style your app
  • UI testing
Cette page vous a-t-elle été utile ?
OuiNon
Besoin d'aide ? Contactez le service Support.
Rejoignez notre programme d'accès anticipé.
Consultez notre log des modifications.
Des questions ? Contactez l'équipe commerciale.
LLM ? Lire llms.txt.
Propulsé par Markdoc