《快速上手React编程》CH7 在React中使用表单
React对于表单事件包了一层,优化了onChange等事件,比如以前DOM要失去焦点才会触发change事件,React是真的字面意义上change了就触发这个事件了。
React在表单上最大的特点在于,value它为了数据和视图的一致性,会按照表单元素的value值渲染属性,并一直保持一致,这就带来一个问题:如果用户手动往input里打了个字,因为表单元素里的value并没有被改变,所以这个input里的值不会改,视图里就是没反应。怎么办呢?
1、使用受控元素:
value绑定一个状态,然后在这个元素的onChange事件里setState这个状态,setState之前,还能对要设置的值进行校验,比如只要数字啦,可以把字母啥的剔除。onChange事件里的event.target.value可以拿到新的值。
class Content extends React.Component {
constructor(props) {
super(props)
this.handleChange = this.handleChange.bind(this)
this.state = {