Beispiele
Im Abschnitt Verwendung finden Sie Informationen zum korrekten Design einer Zeitauswahl und den verschiedenen von Guidewire bereitgestellten Konfigurationsoptionen.
Zeit auswählen
Sie können es dem Benutzer ermöglichen, mithilfe der TimePicker-Komponente eine Zeit auszuwählen. Verwenden Sie dann den Handler, um die ausgewählte Zeit abzurufen.
import { TimePicker } from '@jutro/components/new';
export function DinnerTimeSelector() {
function handleTimeChange(event, value) {
console.log('The user selected the following time for dinner:', value);
}
return (
<TimePicker
label={{
id: 'time-picker-label',
defaultMessage: 'Enter dinner time',
}}
name="Dinner time picker"
onChange={handleTimeChange}
/>
);
}
Zeit und Zeitzone auswählen
Sie können dem Benutzer erlauben, eine Zeit und eine Zeitzone mithilfe der TimePicker- und TimezonePicker-Komponenten auszuwählen. Verwenden Sie dann die Handler, um die ausgewählte Zeit und Zeitzone zu erhalten.
import { TimePicker, TimezonePicker } from '@jutro/components/new';
export function DinnerTimeSelector() {
function handleTimeChange(event, value) {
console.log('The user selected the following time for dinner:', value);
}
function handleTimezoneChange(event, value) {
console.log('The user selected the following timezone for dinner:', value);
}
return (
<>
<TimePicker
label={{
id: 'time-picker-label',
defaultMessage: 'Enter dinner time',
}}
name="Dinner time picker"
onChange={handleTimeChange}
/>
<TimezonePicker
label={{
id: 'timezone-picker-label',
defaultMessage: 'Set timezone for dinner time',
}}
initialValue={{ timezone: 'Europe/Warsaw' }}
onChange={handleTimezoneChange}
/>
</>
);
}
Gesteuerte Zeitauswahl
Sie können die Zeitauswahl steuern, indem Sie die value-Eigenschaft übergeben. Dies ist nützlich, wenn Sie die Zeitauswahl als gesteuerte Komponente verwenden möchten.
import { TimePicker } from '@jutro/components/new';
function DinnerTimeSelector() {
const [time, setTime] = React.useState({ hour: 19, minute: 30 });
function handleTimeChange(event, value) {
setTime(value);
}
return (
<TimePicker
label={{
id: 'time-picker-label',
defaultMessage: 'Enter dinner time',
}}
name="Dinner time picker"
onChange={handleTimeChange}
value={time}
/>
);
}
Beachten Sie, dass die value-Eigenschaft ein Objekt mit den Eigenschaften hour und minute ist.
Tip: Wenn Sie den Wert für die Zeitauswahl formatieren möchten, können Sie mit dem folgenden Beispiel beginnen:const dateObjectFromInput = new Date(0, 0, 0, time.hour, time.minute);
const formattedTime = Intl.DateTimeFormat('en-US', {
hour: '2-digit',
minute: '2-digit',
}).format(dateObjectFromInput);
Aus folgendem Grund ist es am besten, die Intl.DateTimeFormat-API zu verwenden, um den Wert der Zeitauswahl zu formatieren:
Jedes Mal, wenn toLocaleString aufgerufen wird, muss eine Suche in einer großen Datenbank mit Lokalisierungszeichenfolgen durchgeführt werden, was potenziell ineffizient ist. Wenn die Methode viele Male mit denselben Argumenten aufgerufen wird, ist es besser, ein Intl.DateTimeFormat-Objekt zu erstellen und dessen format()-Methode zu verwenden, denn ein DateTimeFormat-Objekt merkt sich die ihm übergebenen Argumente und kann entscheiden, einen Teil der Datenbank zwischenzuspeichern, sodass künftige Formataufrufe in einem eingeschränkteren Kontext nach Lokalisierungszeichenfolgen suchen können.
Weitere Informationen finden Sie in der MDN-Dokumentation zu DateTimeFormat.
Gesteuerte Zeitzonenauswahl
Sie können die Zeitzonenauswahl steuern, indem Sie die value-Eigenschaft übergeben. Dies ist nützlich, wenn Sie die Zeitzonenauswahl als gesteuerte Komponente verwenden möchten.
import { TimezonePicker } from '@jutro/components/new';
function TimezonePickerControlled() {
const [timezone, setTimezone] = React.useState({
timezone: 'Europe/Warsaw',
});
function handleTimezoneChange(event, value) {
setTimezone(value);
}
return (
<TimezonePicker
label={{
id: 'timezone-picker-label',
defaultMessage: 'Set timezone for dinner time',
}}
onChange={handleTimezoneChange}
value={timezone}
/>
);
}
Beachten Sie, dass die value-Eigenschaft ein Objekt mit einer Eigenschaft namens timezone ist.
Zeitintervall, Zeitspanne und Zeitzonen angeben
Für die Zeitauswahl können Sie Folgendes angeben:
- Der min- und max-Wert für die Zeitspanne, zum Beispiel „9:00“ und „17:00“
- Das Zeitintervall, zum Beispiel 15 Minuten
Bei der Zeitzonenauswahl können Sie die Liste der verfügbaren Zeitzonen einschränken. Übergeben Sie einfach ein Array von IANA-Zeitzonen.
<>
<TimePicker
label="Pick a meeting time"
interval={15}
minTime={{
hour: 9,
minute: 0,
}}
maxTime={{
hour: 17,
minute: 30,
}}
/>
<TimezonePicker
label="Set your timezone"
availableTimezones={['Africa/Lagos', 'Africa/Maputo', 'Africa/Monrovia']}
/>
</>
Zeitzonenauswahl in Typescript
Haben Sie Probleme mit Typescript? Sehen Sie sich das folgende Beispiel an:
function TimezonePickerControlled() {
const [timezone, setTimezone] =
React.useState <
JutroTimezone >
{
timezone: 'Europe/Warsaw',
};
function handleTimezoneChange(
event: DropdownOnChangeEvent<JutroTimezone>,
value: JutroTimezone
) {
setTimezone(value);
}
return (
<TimezonePicker
label={{
id: 'timezone-picker-label',
defaultMessage: 'Set timezone for dinner time',
}}
onChange={handleTimezoneChange}
value={timezone}
/>
);
}
Verwendung
Überblick
Mit der Komponente Zeitauswahl können Benutzer eine Zeit aus einer Dropdown-Liste auswählen. Diese Komponente wird häufig in Versicherungsanwendungen verwendet, in denen Benutzer eine Uhrzeit angeben müssen, z. B. um einen Termin zu planen oder eine Erinnerung festzulegen.
Zu verwenden
Zur Auswahl einer Uhrzeit oder zum Hinzufügen einer benutzerdefinierten Zeit.
Nicht zu verwenden
- Zur Auswahl eines Datums. Verwenden Sie stattdessen die Datumsauswahl.
Siehe auch
Aufbau
Aufbau der Zeitauswahlkomponente.
- Beschriftung: Beschreibt den Zweck des Eingabefeldes.
- Hilfetext (optional): Liefert zusätzlichen Kontext oder hilft dem Benutzer bei der richtigen Auswahl.
- Dropdown-Eingabe: Zeigt die vom Benutzer ausgewählte Option an. Benutzer können in das Eingabefeld schreiben, um eine Option zu finden, die ihrer Abfrage entspricht. Sie können auch eine benutzerdefinierte Uhrzeit eingeben.
- Dropdown-Menü: Zeigt eine Liste mit Optionen zur Auswahl an.
Optionen
Die Komponente „Zeitauswahl“ kann sowohl ein 12-Stunden-Format als auch ein 24-Stunden-Format annehmen. Verwenden Sie das Format, das der Region entspricht, in der Ihr Produkt verfügbar ist. In den USA wird beispielsweise das 12-Stunden-Format verwendet.

Markierung für die Tagesperiode
In einem 12-Stunden-Zeitsystem ist der 24-Stunden-Tag in zwei Perioden unterteilt, „AM“ und „PM“, und jede Periode besteht aus 12 Stunden.
Das Format der Tagesperiodenmarkierung wird durch das Gebietsschema des Benutzers bestimmt. Entwickler haben keine Kontrolle darüber. Für das Gebietsschema „en-US“ wird die Tagesperiodenmarkierung standardmäßig mit „AM“ und „PM“ geschrieben.
„en-US“ Das Format der „Tagesperiodenmarkierung“ wird durch das Gebietsschema des Benutzers bestimmt. In diesem Beispiel wird das Gebietsschema „en-US“ verwendet.
Autovervollständigung
Jutro unterstützt Dropdown-Menüs mit Eingabefeldern mit Autovervollständigung. Benutzer können manuell Text eingeben, um die Dropdown-Elemente zu filtern. Diese Funktion ist hilfreich, um Benutzern die Auswahl aus einer langen Liste zu erleichtern.
Dropdown-Menüs mit aktivierter Autovervollständigung machen Vorschläge, wenn Benutzer mit der Eingabe beginnen. Die Auswahl wird basierend auf den Zeichen angezeigt, die der Benutzer eingegeben hat. Je mehr Zeichen der Benutzer in das Feld eingibt, desto detaillierter wird die Liste.

Zeitzone
Eine Zeitauswahl kann ein Eingabesteuerelement für die Zeitzone enthalten. Die Zeitzonenauswahl unterstützt auch die Autovervollständigungsfunktion, die es Benutzern ermöglicht, durch die Liste der Optionen zu filtern.

Inhalt
Allgemeine Richtlinien fürs Schreiben
- Verwenden Sie die Großschreibung des ersten Worts und von Substantiven für alle Aspekte der Gestaltung von Guidewire-Produktschnittstellen. Schreiben Sie nicht alles groß.
- Verwenden Sie in den meisten Situationen Verben im Präsens und im Aktiv.
- Verwenden Sie gebräuchliche Abkürzungen, um Ihrem Text einen natürlichen und informellen Ton zu verleihen.
- Verwenden Sie eine einfache Sprache. Vermeiden Sie unnötigen Jargon und komplexe Sprache.
- Halten Sie Wörter und Sätze kurz.
Eine Beschriftung einfügen
Positionieren Sie eine deutlich sichtbare Beschriftung außerhalb des Eingabefeldes. Ein Eingabefeld ohne Beschriftung ist mehrdeutig und nicht barrierefrei.
Positionieren Sie eine dauerhafte Beschriftung außerhalb des Feldes.
Verwenden Sie keinen Platzhaltertext als Ersatz für die Beschriftung.
Verwenden Sie keinen Platzhaltertext
Fügen Sie keinen Platzhaltertext in das Eingabefeld ein. Platzhaltertext belastet das Kurzzeitgedächtnis der Benutzer, da es nach der Eingabe eines Wertes verschwindet. Auch für Benutzer mit vermindertem Sehvermögen und kognitiven Beeinträchtigungen stellt er eine zusätzliche Belastung dar.
Positionieren Sie Hinweise und Anweisungen, einschließlich Formatierungsbeispiele und -anforderungen, stattdessen außerhalb des Feldes.
Das Eingabefeld für die Zeitauswahl richtet sich nach den Inhaltsrichtlinien für Textfelder.
Quelle: Nielsen Norman Group
Positionieren Sie Hinweise und Anweisungen, einschließlich Formatierungsbeispiele und -anforderungen, außerhalb des Feldes.
Fügen Sie dem Eingabefeld keinen Platzhaltertext hinzu.
Verwenden von Fehlertext zur Anleitung der Benutzer
Der Text der Fehlermeldung erklärt dem Benutzer, wie er den Fehler beheben kann. Im Falle der Zeitauswahl hängen die Fehler oft mit etwas zusammen, das für die Inline-Validierung korrigiert werden muss.
Ungültige Felder müssen deutlich gekennzeichnet werden. Legen Sie bei Auswahlwerkzeugen mit mehr als einem Feld den ungültigen Status für das einzelne Feld fest, das den Fehler auslöst.
Verwenden Sie für Fehlertext die übliche Groß- und Kleinschreibung. Schreiben Sie 1 bis 2 kurze, vollständige Sätze, die mit einem Punkt enden.
Verwenden Sie Fehlermeldungstexte, um den Benutzer zu führen und ihm eine Lösung zu zeigen.
Schreiben Sie keine zweideutigen Fehlermeldungen und lassen Sie die Benutzer nicht im Unklaren darüber, wie ein Problem zu lösen ist.
Pflichtfelder markieren
Markieren Sie erforderliche Felder mit einem Sternchen (*). Das Sternchen steht vor der Feldbeschriftung. Benutzer können so leicht herausfinden, welche Felder erforderlich sind, indem sie nur das Zeichen ganz links in der Beschriftung scannen.
Zusätzlich zur Markierung erforderlicher Felder mit einem Sternchen wird empfohlen, klare Anweisungen am oberen Rand des Formulars einzufügen, z. B. „Alle mit einem Sternchen gekennzeichneten Felder sind Pflichtfelder“, um sicherzustellen, dass die Benutzer die Bedeutung des Sternchens verstehen.
Verwenden Sie ein Sternchen, um anzuzeigen, dass ein Feld ein Pflichtfeld ist.
Verwenden Sie kein Sternchen, um etwas zu kennzeichnen, das optional ist.
Schreiben Sie das erste Wort und Substantive groß.
Für Feldbeschriftungen wird die übliche Groß- und Kleinschreibung verwendet.
Weitere Informationen zum Implementieren der Groß- und Kleinschreibung finden Sie im UI-Textstyleguide.
Verwenden Sie die übliche Groß- und Kleinschreibung.
Schreiben Sie nicht alles groß.
Verhalten
Zustände
Die Zeitauswahl erscheint ohne Wert (Standard), mit Platzhaltertext oder mit vorausgefüllter Eingabe.
| Bild | Zustand | Beschreibung |
|---|
 | Kein Wert (Standard) | Zeigt dem Benutzer an, dass kein Wert ausgewählt wurde und kein Platzhalter vorhanden ist. |
 | Platzhalter | Zeigt dem Benutzer an, dass kein Wert ausgewählt wurde. Der Platzhalter ist ausgegraut. |
 | Vorausgefüllte Eingabe | Zeigt dem Benutzer an, dass die Eingabe mit Daten vorausgefüllt ist. |
Die Zeitauswahl verfügt auch über interaktive Zustände für Aktiviert, Fokussiert, Deaktiviert, Fehler, Schreibgeschützt und Nur Anzeigen.
| Zustand | Beschreibung |
|---|
| Aktiviert | Zeigt dem Benutzer an, dass das Element für die Interaktion aktiviert ist. |
| Fokussiert | Zeigt dem Benutzer an, auf welchem UI-Element im System der Fokus liegt. |
| Deaktiviert | Zeigt dem Benutzer an, dass der Eingabewert aufgrund lokaler Faktoren nicht geändert werden kann. Zum Beispiel muss ein Kontrollkästchen über dem Eingabefeld aktiviert sein, um auf dieses Eingabefeld zuzugreifen. Der Benutzer kann durch Interaktion mit der Seite eine Aktion zur Aktivierung durchführen. |
| Fehler | Zeigt an, dass der Benutzer einen Fehler bei der Validierung gemacht hat. Der Fehlertext gibt dem Benutzer eine korrigierende Rückmeldung. |
| Schreibgeschützt | Zeigt dem Benutzer an, dass der Eingabewert aufgrund externer Faktoren nicht geändert werden kann. Zum Beispiel fehlender Schreibzugriff. Der Benutzer kann Maßnahmen zur Aktivierung ergreifen, indem er sich z. B. an einen Administrator wendet. |
| Nur Anzeige | Der Zustand „Nur Anzeige“ wird in zwei Fällen verwendet: - Ein UI-Element wird im Anzeigemodus verwendet.
- Ein UI-Element wird im Bearbeitungsmodus angezeigt, ist aber nie bearbeitbar.
Dieser Zustand wurde zuvor als „Schreibgeschützt“ bezeichnet. |
Die folgende Abbildung stellt die interaktiven Zustände der Zeitauswahl dar.

Interaktionen
Maus
Benutzer können mit diesem Element interagieren, indem sie auf den Bereich innerhalb des Rahmens klicken.

Tastatur
Die Zeitauswahl wird mit der LEERTASTE aus- und eingeklappt. Die Benutzer navigieren mithilfe die Pfeiltasten durch die Optionen und wählen mit der LEERTASTE oder der EINGABETASTE eine Option aus.
Screenreader
Die aria-labelledby stellt eine programmgesteuerte Verknüpfung zwischen dem Eingabefeld und dessen Beschriftung her. Das WAI-ARIA-Attribut aria-autocomplete='list' gibt an, dass eine Liste von Optionen angezeigt wird, aus der der Benutzer auswählen kann, das Bearbeitungsfeld jedoch fokussiert bleibt. Wenn in Storybook die Option „required“ ausgewählt wird, werden die Attribute „required“ und „aria-required="true"“ zum Eingabefeld hinzugefügt.
Barrierefreiheit
Das Kontrastverhältnis von Textelementen zu ihrem Hintergrund liegt über 4,5:1 gemäß den Anforderungen der WCAG 2.1 AA. Nicht-textuelle Inhalte, die eine Bedeutung vermitteln müssen (z. B. Symbole und Sichtbarkeit des Tastaturfokus), weisen ein Kontrastverhältnis von mindestens 3:1 zu den angrenzenden Farben auf. Alle Inhalte sind bis einschließlich 400 % sichtbar und funktionsfähig, ohne dass ein Scrollen in zwei Dimensionen erforderlich ist.
Diese Komponente wurde validiert, um die Zugänglichkeitsrichtlinien WCAG 2.1 AA zu erfüllen. Vom Autor des Inhalts vorgenommene Änderungen können sich jedoch auf die Konformität mit der Barrierefreiheit auswirken.
Bei Verwendung dieser Komponente in Ihren Anwendungen:
- Geben Sie die Formatierungsanforderungen klar an.
- Vermeiden Sie die Verwendung von Platzhaltertext.
- Verwenden Sie aussagekräftige Texte für Fehlertexte.
Code
<>
<TimePicker
label={{
id: 'time-picker-label',
defaultMessage: 'Enter dinner time',
}}
name="Dinner time picker"
onChange={handleTimeChange}
/>
<TimezonePicker
label={{
id: 'timezone-picker-label',
defaultMessage: 'Set timezone for dinner time',
}}
initialValue={{ timezone: 'Europe/Warsaw' }}
onChange={handleTimezoneChange}
/>
</>
Importanweisung
import { TimePicker, TimezonePicker } from '@jutro/components/new';
Komponentenvertrag
Vergewissern Sie sich, dass Sie die API-Oberfläche der Design System-Komponenten und die damit verbundenen Auswirkungen und Kompromisse verstehen. Erfahren Sie mehr in unserer Einführung zur Komponenten-API.
Eigenschaften
TimePicker-Eigenschaften
labelerforderlich
BeschreibungLabel associated with input field, also passed as a default value to aria-label.
className
BeschreibungCSS class name for this component.
disabled
BeschreibungIf set to true, component is rendered in disabled state.
displayOnly
BeschreibungIf set to true, displays the component value in plain text.
hideLabel
BeschreibungIf set to true, the label is not visible.
initialValue
Typ{ hour: number, minute: number }
BeschreibungInitial value of input. If value prop is specified along with this prop, this prop's value is discarded.
interval
BeschreibungInterval between time options in minutes.
labelPosition
BeschreibungAllows to select label position.
maxTime
Typ{ hour: number, minute: number }
BeschreibungThe latest time that can be chosen, for example { hour: 12, minute: 30 } means 12:30 PM.
minTime
Typ{ hour: number, minute: number }
BeschreibungThe earliest time that can be chosen, for example { hour: 6, minute: 15 } means 6:15 AM.
name
BeschreibungA string specifying a name for the input. It is used also to include it on the event parameter of the onChange function.
onBlur
Typfunction (FocusEvent<HTMLInputElement>)
BeschreibungA callback called after the component is focused.
onChange
Typfunction (React.ChangeEvent<HTMLInputElement>, { hour: number, minute: number })
BeschreibungCallback invoked when component value is changed.
onFocus
Typfunction (FocusEvent<HTMLInputElement>)
BeschreibungA callback called after the component is focused.
placeholder
BeschreibungPlaceholder to display on an empty component.
readOnly
BeschreibungIf set to true, component is rendered in a read-only state. For values in plain text, consider using displayOnly.
required
BeschreibungIf set to true, component is rendered as required and label has asterisk.
secondaryLabel
BeschreibungSecondary label text to display.
stateMessages
BeschreibungAn object with a list of error messages for the current state.
BeschreibungForce 12-hour/24-hour clock (WARNING: This will override locale settings).
Typ{ text: intlMessageShape, trigger: string } | intlMessageShapetext
BeschreibungText to show tooltip content.
trigger
BeschreibungThe trigger to show the tooltip.
BeschreibungText to be displayed in the tooltip or tooltip object that includes: text - to show tooltip content, trigger - to set tooltip trigger.
value
Typ{ hour: number, minute: number }
BeschreibungValue of the component. Takes precedence over intialValue. If passed, the component works in controlled mode. The empty value is null.
TimezonePicker-Eigenschaften
labelerforderlich
BeschreibungLabel associated with input field, also passed as a default value to aria-label.
className
BeschreibungCSS class name for this component.
availableTimezones
BeschreibungList of options in IANA format, by default all possible timezones are displayed.
disabled
BeschreibungIf set to true, component is rendered in disabled state.
displayOnly
BeschreibungIf set to true, displays the component value in plain text.
hideLabel
BeschreibungIf set to true, the label is not visible.
initialValue
Typ{ timezone: JutroTimezone }
BeschreibungInitial value of input. If value prop is specified along with this prop, this prop's value is discarded.
labelPosition
BeschreibungAllows to select label position.
name
BeschreibungA string specifying a name for the input. It is used also to include it on the event parameter of the onChange function.
onBlur
Typfunction (FocusEvent<HTMLInputElement>)
BeschreibungA callback called after the component is focused.
onChange
Typfunction (React.ChangeEvent<HTMLInputElement>, JutroTimezone)
BeschreibungCallback invoked when component value is changed.
onFocus
Typfunction (FocusEvent<HTMLInputElement>)
BeschreibungA callback called after the component is focused.
placeholder
BeschreibungPlaceholder to display on an empty component.
readOnly
BeschreibungIf set to true, component is rendered in a read-only state. For values in plain text, consider using displayOnly.
required
BeschreibungIf set to true, component is rendered as required and label has asterisk.
secondaryLabel
BeschreibungSecondary label text to display.
stateMessages
BeschreibungAn object with a list of error messages for the current state.
Typ{ text: intlMessageShape, trigger: string } | intlMessageShapetext
BeschreibungText to show tooltip content.
trigger
BeschreibungThe trigger to show the tooltip.
BeschreibungText to be displayed in the tooltip or tooltip object that includes: text - to show tooltip content, trigger - to set tooltip trigger.
value
Typ{ timezone: JutroTimezone }
BeschreibungValue of the component. Takes precedence over intialValue. If passed, the component works in controlled mode. The empty value is null.
Der JutroTimezone-Typ ist eine Liste von IANA-Zeitzonen, zum Beispiel:
const timeZones = [
'Africa/Lagos',
'Africa/Maputo',
'Africa/Monrovia',
];
Weitere Informationen über IANA-Zeitzonen finden Sie in der IANA-Zeitzonendatenbank.
Hooks
Für TimePicker oder TimezonePicker sind keine Hooks verfügbar.
Übersetzungsschlüssel
Die TimePicker-Komponente definiert einen Übersetzungsschlüssel:
| Schlüssel | Verwendet für |
|---|
| jutro-components.fields.TimePicker.placeholder | Der Platzhalter im Eingabefeld. |
Diese TimezonePicker-Komponente definiert einen Übersetzungsschlüssel für jede verfügbare Zeitzone. Der Schlüssel beginnt immer mit jutro-components.fields.TimezonePicker, gefolgt vom Namen der Zeitzone.
Für die Zeitzone Africa/Lagos lautet die Übersetzungsschlüssel-ID beispielsweise:
jutro-components.fields.TimezonePicker.Africa/Lagos
Die Uhrzeit wird entsprechend dem ausgewählten Gebietsschema formatiert. Ist das Gebietsschema beispielsweise en-US, wird die Uhrzeit als „5:30 PM“ formatiert. Wenn das Gebietsschema pl-PL ist, wird die Uhrzeit als „17:30“ formatiert.
Escape Hatches
Weitere Informationen finden Sie in unserer Dokumentation über Escape-Hatches.
Folgende Optionen sind verfügbar:
- Design-Token
- Eine
className-Eigenschaft
- Die Möglichkeit, die unterstützten HTML-Attribute zu übergeben
- Ref mit imperativen Handlern
- Eine native
event-Eigenschaft
Ref mit imperativen Handlern
Die Jutro-Eingaben haben imperative Handler als Mechanismus implementiert, um Zugang zu einigen gängigen nativen Funktionen zu bieten, die für Sie nützlich sein könnten. Die folgenden Funktionen sind verfügbar:
-
Fokus setzen ermöglicht es, den Fokus des Benutzers auf eine bestimmte Komponente zu setzen.
-
Weichzeichnen ermöglicht es, den Fokus von der Komponente zu entfernen.
-
Zur Komponente scrollen ermöglicht es, den Benutzer zu einem bestimmten Bereich der Seite zu führen.
Diese Funktionen werden über die ref-Eigenschaft bereitgestellt, die sie wie folgt verfügbar macht:
const componentRef = useRef(null);
const setFocus = () => {
componentRef?.current.focus();
}
const removeFocus = () => {
componentRef?.current.blur();
}
const scrollToComponent = () => {
componentRef?.current.scrollIntoView();
}
<Component ref={componentRef}>
In Zukunft könnten weitere Optionen hinzukommen.
Vorrang der Eigenschaften disabled, displayOnly und readOnly
Wenn zwei oder mehr der Eigenschaften disabled, displayOnly, und readOnly gleichzeitig auf true gesetzt werden, gilt die folgende Vorrangregel:
displayOnly > readOnly > disabled
Obwohl einige Jutro-Komponenten ergänzende Funktionen oder eine Hilfsfunktion zur Erleichterung des Validierungsprozesses bereitstellen, liegt es in Ihrer Verantwortung als Entwickler, die Validierung von Benutzereingaben (mit oder ohne Verwendung der ergänzenden Hilfsfunktionen) durchzuführen und zu entscheiden, welche Fehlermeldungen angezeigt werden sollen.
Jutro-Komponenten verhalten sich in Abhängigkeit von der Implementierung des Entwicklers.
Wann werden Fehlermeldungen angezeigt?
Fehlermeldungen werden nur angezeigt, wenn Sie sie über die Eigenschaft stateMessages an die Komponente übergeben. Diese Eigenschaft empfängt ein Objekt mit dem folgenden Inhalt:
{
error: ['error message 1', 'error message 2', 'error message N'];
}
Die Komponente zeigt alle bereitgestellten Fehlermeldungen in der gleichen Reihenfolge wie im Array an.
Wann erfolgt die Validierung?
Dies ist Ihre Entscheidung als Entwickler. Da die Komponenten nicht festlegen, wann die Validierung durchgeführt wird oder wann der Fehler angezeigt werden muss, müssen Sie die Logik für die Behandlung entsprechend den Projektanforderungen implementieren, z. B. während der Benutzer den Inhalt bearbeitet, wenn die Komponente den Fokus verliert und bei der Formularübermittlung.
Zusätzliche Validierung für TimePicker
Wenn der Benutzer eine ungültige Zeit eingibt oder eine Zeit, die außerhalb der Min/Max-Grenzen liegt, erhält er einen Validierungsfehler als dritten Parameter im onChange-Handler. Die Parameter sehen wie folgt aus:
{
errorCode: ERROR.<ERROR_CODE_GOES_HERE>,
}
Der Fehlercode kann einer der folgenden sein:
INVALID_TIME – wenn der Benutzer eine ungültige Uhrzeit eingibt, z. B. „25:67 AM“.
MIN_TIME_EXCEEDED – wenn der Benutzer eine Zeit vor minTime eingibt.
MAX_TIME_EXCEEDED – wenn der Benutzer eine Zeit nach maxTime eingibt.