Ich habe eine kleine Geige gemacht, um das Problem zu zeigen: Ссылка Wenn Sie ein Eingabefeld mit onBlur und einen Anfangswert aus dem Status haben, wird die Eingabe über die Tastatur blockiert. Wenn onChange angehängt ist, funktioniert es korrekt. Warum passiert das und wie kann das gelöst werden? Ich hätte erwartet, dass es die eingegebenen Zeichen akzeptiert und den Status onBlur aktualisiert.
Das Attribut value
verknüpft den Wert der Eingabe mit diesem Status, und wenn der Benutzer den Wert ändert, sind der Status und der Eingabewert nicht mehr miteinander verknüpft. React verhindert das.
Wahrscheinlich möchten Sie stattdessen das Attribut defaultValue
verwenden.
Wenn Sie das Attribut value
verwenden möchten, müssen Sie onChange
verwenden, um es mit dem Komponentenstatus zu synchronisieren. Dies liegt daran, dass die Komponente zu einem beliebigen Zeitpunkt erneut gerendert werden kann und der Wert nicht mit dem Status übereinstimmt, der einen alten Wert wiedergeben würde.