Framework
Version
API-Referenz

Fehlerbehebung bei der React-Nutzung

Hier ist eine Liste häufiger Fehler, die Sie in der Konsole sehen könnten, und wie Sie sie beheben.

Ändern eines ungesteuerten Eingabefelds in ein gesteuertes

Wenn Sie diesen Fehler in der Konsole sehen

Warning: A component is changing an uncontrolled input to be controlled. This is likely caused by the value changing from undefined to a defined value, which should not happen. Decide between using a controlled or uncontrolled input element for the lifetime of the component. More info: https://reactjs.org/link/controlled-components
Warning: A component is changing an uncontrolled input to be controlled. This is likely caused by the value changing from undefined to a defined value, which should not happen. Decide between using a controlled or uncontrolled input element for the lifetime of the component. More info: https://reactjs.org/link/controlled-components

Wahrscheinlich haben Sie die defaultValues in Ihrem useForm Hook oder bei der Verwendung der form.Field Komponente vergessen. Dies geschieht, weil die Eingabe gerendert wird, bevor der Formularwert initialisiert ist und sich daher von undefined zu "" ändert, wenn eine Texteingabe erfolgt.

Feldwert ist vom Typ unknown

Wenn Sie form.Field verwenden und beim Überprüfen des Werts von field.state.value feststellen, dass der Wert eines Feldes vom Typ unknown ist, ist es wahrscheinlich, dass der Typ Ihres Formulars zu groß war, um ihn sicher auszuwerten.

Dies ist typischerweise ein Zeichen dafür, dass Sie Ihr Formular in kleinere Formulare aufteilen oder einen spezifischeren Typ für Ihr Formular verwenden sollten.

Eine mögliche Lösung für dieses Problem ist das Umwandeln von field.state.value mit dem TypeScript as Schlüsselwort

tsx
const value = field.state.value as string
const value = field.state.value as string

Typinstanziierung ist übermäßig tief und möglicherweise unendlich

Wenn Sie diesen Fehler in der Konsole sehen, wenn Sie tsc ausführen

Type instantiation is excessively deep and possibly infinite
Type instantiation is excessively deep and possibly infinite

Sie sind auf einen Fehler gestoßen, den wir in unseren Typdefinitionen nicht erfasst haben. Obwohl wir unser Bestes getan haben, um sicherzustellen, dass unsere Typen so genau wie möglich sind, gibt es einige Ausnahmefälle, in denen TypeScript mit der Komplexität unserer Typen Schwierigkeiten hatte.

Bitte melden Sie dieses Problem auf GitHub, damit wir es beheben können. Stellen Sie sicher, dass Sie eine minimale Reproduktion beifügen, damit wir Ihnen bei der Fehlerbehebung helfen können.

Beachten Sie, dass es sich hierbei um einen TypeScript-Fehler und nicht um einen Laufzeitfehler handelt. Das bedeutet, dass Ihr Code auf dem Computer des Benutzers wie erwartet ausgeführt wird.

Unsere Partner
Code Rabbit
Bytes abonnieren

Ihre wöchentliche Dosis JavaScript-Nachrichten. Jeden Montag kostenlos an über 100.000 Entwickler geliefert.

Bytes

Kein Spam. Jederzeit kündbar.

Bytes abonnieren

Ihre wöchentliche Dosis JavaScript-Nachrichten. Jeden Montag kostenlos an über 100.000 Entwickler geliefert.

Bytes

Kein Spam. Jederzeit kündbar.