Weiter zum Inhalt
Konto erstellen
oder
anmelden
Das Logo der Stripe-Dokumentation
/
KI fragen
Konto erstellen
Anmelden
Jetzt starten
Zahlungen
Umsatz
Plattformen und Marktplätze
Geldmanagement
Entwicklerressourcen
Übersicht
Versionierung
Änderungsprotokoll
Aktualisieren Sie Ihre API-Version
Ihre SDK-Version aktualisieren
Essentials
SDKs
API
Tests
Stripe-CLI
Tools
Workbench
Entwickler-Dashboard
Stripe Shell
Stripe für Visual Studio Code
Funktionen
Arbeitsabläufe
Ereignisziele
Stripe-StatuswarnungenHochgeladene Dateien
AI solutions
Agent-Toolkit
Build with an LLM
Sicherheit und Datenschutz
Sicherheit
Datenschutz
Extend Stripe
Stripe-Apps
    Übersicht
    Jetzt starten
    Eine App erstellen
    Funktionsweise von Stripe-Apps
    Beispiel-Apps
    App erstellen
    Shop-Geheimnisse
    API-Authentifizierungsmethoden
    Autorisierungsabläufe
    Serverseitige Logik
    Ereignisse überwachen
    Umgang mit verschiedenen Modi
    Sandbox-Unterstützung aktivieren
    App-Einstellungsseite
    Erstellen Sie eine Nutzeroberfläche
    Onboarding
    Ihre App verbreiten
    Vertriebsmöglichkeiten
    App hochladen
    Versionen und Releases
    Ihre App testen
    Ihre App veröffentlichen
    Ihre App bewerben
    Deep-Links hinzufügen
    Installationslinks erstellen
    Rollen in Erweiterungen der Nutzeroberfläche zuweisen
    Aktionen nach der Installation
    App-Analytik
    Embedded components
    Stripe-Apps von Drittanbietern einbetten
    Umstellung auf Stripe Apps
    Migrieren oder Erweiterung erstellen
    Ein Plugin zu Stripe Apps oder Stripe Connect migrieren
    Verwendungszweck
    App-Manifest
    CLI
    Erweiterungs-SDK
    Berechtigungen
    Darstellungsfelder
    Entwurfsmuster
    Komponenten
      Accordion
      Badge
      Banner
      Balkendiagramm
      Textfeld
      Schaltfläche
      ButtonGroup
      Kontrollkästchen
      Chip
      ContextView
      DateField
      Trennzeichen
      FocusView
      FormFieldGroup
      Symbol
      Img
      Inline
      Liniendiagramm
      Link
      Liste
      Menü
      PropertyList
      Radio
      Auswählen
      SettingsView
      SignInView
      Sparkline
      Sanduhr
      Wechseln
      Tisch
      Registerkarten
      Aufgabenliste
      TextArea
      TextField
      Toast
      QuickInfo
Stripe Connectors
Partner
Partner-Ecosystem
Partner-Zertifizierung
StartseiteEntwicklerressourcenStripe AppsComponents

Tasklist-Komponente für Stripe Apps

Verwenden Sie TaskList, um Nutzern und Nutzerinnen zu helfen, ihren Fortschritt anhand einer Liste von Aufgaben zu verfolgen, die sie erledigen müssen.

Achtung

Diese Version des SDK ist eine Vorabversion und kann instabil sein. Vermeiden Sie die Verwendung dieser Version, es sei denn, sie ist für Ihre Integration erforderlich.

So fügen Sie Ihrer App die TaskList Komponente hinzu:

import {TaskList, TaskListItem} from '@stripe/ui-extension-sdk/ui';

Verwenden Sie TaskList:

  • So unterteilen Sie größere Aufgaben oder Prozesse in mehrere, aufeinanderfolgende Schritte, die von einem/einer Nutzer/in ausgeführt werden müssen
  • So erinnern Sie Nutzer/innen an ihren Fortschritt bei nicht erledigten Aufgaben

Aufgabenlisten bestehen aus einzelnen Elementen. Sie können Aufgabenlisten innerhalb von Aufgabenlistenelementen verschachteln, um Unteraufgaben darzustellen. Wenn ein/e Nutzer/in eine Aufgabe erledigt hat, zeigen Sie die Unteraufgaben nicht mehr an. Sie können sie entweder vollständig ausblenden, wenn sie nicht mehr nützlich sind, oder dem/der Nutzerin gestatten, sie per Klick anzuzeigen.

Im folgenden Beispiel wird veranschaulicht, wie eine Aufgabenliste mit einer Verbindungslinie gerendert wird, um die Anforderung zu verstärken, Aufgaben nacheinander auszuführen.

Beispiel wird geladen ...
const tasks: TaskListItemProps[] = [ { title: 'Add business info', status: 'complete', }, { title: 'Connect your bank', status: 'complete', }, { title: 'Secure your account', status: 'complete', }, { title: 'Add extras', status: 'in-progress', subTasks: [ { title: 'Tax calculation', status: 'complete', }, { title: 'Fraud protection', status: 'in-progress', }, { title: 'Climate contributions', status: 'not-started', }, ], }, { title: 'Review and finish', status: 'not-started', }, ]; return ( <TaskList> {tasks.map((task, idx) => ( <TaskListItem key={idx} {...task} /> ))} </TaskList> )

TaskList-Eigenschaften

EigenschaftTyp

children

Pflichtfeld

React.ReactNode

Eine oder mehrere TaskListItem-Komponenten.

TaskListItem

TaskList-Komponenten enthalten eine oder mehrere TaskListItem-Komponenten, die jede Aufgabe definieren, die der/die Nutzer/in erledigen muss. Wenn ein Aufgabenlistenelement seine eigenen Unteraufgaben definiert, muss ein/e Nutzer/in diese Unteraufgaben erledigen, um die übergeordnete Aufgabe abzuschließen.

TaskListItem-Eigenschaften

EigenschaftTyp

title

Pflichtfeld

string

Der Anzeigetitel der Aufgabe.

onPress

Optional

((event: PressEvent) => void) | undefined

Ein Ereignishandler, wenn der/die Nutzer/in auf eine beliebige Stelle in der Aufgabe klickt.

status

Optional

("not-started" | "in-progress" | "blocked" | "complete") | undefined

Der aktuelle Status der Aufgabe.

subTasks

Optional

Array<SubTasks> | undefined

Eine Liste der Unteraufgaben, die zu dieser Aufgabe gehören.

Verwandte Typen: SubTasks.

SubTasks

EigenschaftTyp

title

Pflichtfeld

string

Der Anzeigetitel der Aufgabe.

onPress

Optional

((event: PressEvent) => void) | undefined

Ein Ereignishandler, wenn der/die Nutzer/in auf eine beliebige Stelle in der Aufgabe klickt.

status

Optional

("not-started" | "in-progress" | "blocked" | "complete") | undefined

Der aktuelle Status der Aufgabe.

Zustandsorientiert

Im folgenden Beispiel wird veranschaulicht, wie eine zustandsbehaftete Aufgabenliste gerendert wird, bei der der Status der einzelnen Aufgabenelemente als Reaktion auf ein Klickereignis aktualisiert wird.

Beispiel wird geladen ...
import {useReducer, useCallback} from 'react'; import { Box, Button, TaskList, TaskListItem, TaskListItemProps, } from '@stripe/ui-extension-sdk/ui'; const initialTasks: TaskListItemProps[] = [ { title: 'Add business info', status: 'in-progress', }, { title: 'Connect your bank', status: 'complete', }, { title: 'Secure your account', status: 'complete', }, { title: 'Add extras', status: 'in-progress', subTasks: [ { title: 'Tax calculation', status: 'in-progress', }, { title: 'Fraud protection', status: 'in-progress', }, { title: 'Climate contributions', status: 'not-started', }, ], }, { title: 'Review and finish', status: 'not-started', }, ]; const [tasks, dispatch] = useReducer(taskReducer, initialTasks); const toggleStatus = useCallback((taskIdx: number, subTaskIdx?: number) => { dispatch({type: 'TOGGLE_STATUS', taskIdx, subTaskIdx}); }, []); return ( <Box> <TaskList> {tasks.map((task, taskIdx) => ( <TaskListItem key={`task-${taskIdx}-${task.status}`} {...task} onPress={() => toggleStatus(taskIdx)} subTasks={task.subTasks?.map((subTask, subTaskIdx) => ({ ...subTask, onPress: () => toggleStatus(taskIdx, subTaskIdx), }))} /> ))} </TaskList> </Box> ); function getNextStatus( status: string, ): 'not-started' | 'in-progress' | 'complete' { switch (status) { case 'complete': return 'not-started'; case 'not-started': return 'in-progress'; case 'in-progress': return 'complete'; default: return 'not-started'; } } type TaskAction = { type: 'TOGGLE_STATUS'; taskIdx: number; subTaskIdx?: number; }; // Reducer function to handle state updates function taskReducer( state: TaskListItemProps[], action: TaskAction, ): TaskListItemProps[] { switch (action.type) { case 'TOGGLE_STATUS': // If subTaskId is provided, update the subtask if (action.subTaskIdx !== undefined) { return state.map((task, idx) => { if (idx === action.taskIdx && task.subTasks) { return { ...task, subTasks: task.subTasks.map((subTask, subIdx) => { if (subIdx === action.subTaskIdx) { return { ...subTask, status: getNextStatus(subTask.status as string), }; } return subTask; }), }; } return task; }); } // Otherwise update the main task else { return state.map((task, idx) => { if (idx === action.taskIdx) { return { ...task, status: getNextStatus(task.status as string), }; } return task; }); } default: return state; } }

Siehe auch

  • Entwurfsmuster als Orientierung
  • App gestalten
  • Test der Nutzeroberfläche
War diese Seite hilfreich?
JaNein
Benötigen Sie Hilfe? Kontaktieren Sie den Kundensupport.
Nehmen Sie an unserem Programm für frühzeitigen Zugriff teil.
Schauen Sie sich unser Änderungsprotokoll an.
Fragen? Sales-Team kontaktieren.
LLM? Lesen Sie llms.txt.
Unterstützt von Markdoc