受控?什么受什么控制?
输入类表单元素的值 受 setState的控制
在HTML中,表单元素(如:input
textarea
select
通常自己维护state,并根据用户输入进行更新。而在react中,可变状态通常保存在组件的state属性中,并且只能通过使用setState()
来更新。
1. 受控組件
react官网简述:https://zh-hans.reactjs.org/docs/forms.html#controlled-components
-
每当输入框内容发生变化时,都会被写入组件的state中,这种组件在react中别理解为 受控组件。
-
受控组件的值value,始终由react中的state驱动
具体流程:
- 首先通过state设置输入框的默认值
- 当输入框的值发生变化时,调用onChange事件处理器
- 事件处理器通过合成事件对象 e 拿到改变后的数据,并且更新应用的state
- setState触发视图的重新渲染,完成数据的更新展示。
class Login extends React.Component{
state={
username:'',
password:''
}
userChange=(e)=>{
this.setState({
username:e