React · 单选题 · 第 45 题
前端与全栈开发面试 · 第 45 题
关于 React 中的受控组件,下列说法正确的是?
- A表单元素的值由 state 驱动,用户输入通过 onChange 更新 state
- B表单元素的值由 DOM 自己管理,需要时再通过 ref 读出来
- C受控组件不能设置 value 属性,只能设置 defaultValue 属性
- D受控组件的值只能在组件第一次渲染时设置,之后无法修改
答案
A A. 表单元素的值由 state 驱动,用户输入通过 onChange 更新 state
解析
受控组件让 React state 成为表单值唯一的数据来源,方便做即时校验、格式化和联动。由 DOM 自己管理、用 ref 读取的是非受控组件,用 defaultValue 设置初始值。只写了 value 却没有 onChange,输入框就会变成只读,React 也会给出警告。