A controlled field gets its current value from state and sends edits back through an event handler. When two fields or components must agree, give their closest shared parent one value and pass it down. Keeping separate copies creates synchronization work and lets the screen drift. Checkbox controls use checked rather than value. Text validation has its own boundary: whitespace alone should not become a saved contact name. You'll coordinate fields, filter results from parent state, and clear old validation errors after a successful submission. Check both directions when fields mirror one another. A flow that updates only the second field from the first still has two competing sources of truth.