Ramonda

field-the-user-cannot-change

This fails the run. Where it is wrong about your code, // ramonda-check-ignore <reason> on the line says so, and the reason is printed on every run.

Reported when a controlled field — a Select, a TextArea or an <input> with a value or a checked — has no handler of its own that writes the model, a text field has only onchange, a text field's value is written as itself, a spread on it cannot be read, its handler is an optional prop, or value sits beside defaultValue.

A controlled field shows what the model holds, and its own handler is what writes the model: core calls it, then shows the model, before the event bubbles to anything around the field.

Write the model in the field's own handler:

typed(event: EventOn<HTMLTextAreaElement>) {
  this.draft = event.currentTarget.value;
}

<TextArea aria-label="Draft" value={this.draft} oninput={this.typed} />

Or, for a field whose value is read when the form is sent, say where it STARTS:

<input name="email" defaultValue={this.saved} />

To refuse an edit, the handler writes nothing; to rewrite it, the handler writes what the field should show.

Next