React学习笔记之八:表单数据的双向绑定

本文主要介绍了React中表单的双向数据绑定,包括单选、下拉、输入等控件的数据绑定方法。通过绑定value属性到state,监听onChange事件,结合event.target.value更新state值来实现数据同步。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

7.表单的双向数据绑定

具体代码可以参考我的github中的my-app

参考博文:React表单事件和取值

通常需要获取用户在表单内填写的信息,实现对于用户数据的获取并上传,因此表单数据的绑定十分重要,这次我们将对单选,下拉,输入分别进行数据的绑定


class Form extends Component {
  constructor(props) {
    super(props);
    this.state = { content: '', sex: '1', fruit: '' };
    this.inputChangeHandler = this.inputChangeHandler.bind(this);
    this.sexChange = this.sexChange.bind(this);
    this.fruitChange = this.fruitChange.bind(this);
  }
  // 输入框onChange绑定事件
  inputChangeHandler(event) {
    this.setState({ content: event.target.value });
  }
  // 单选框onChange绑定事件
  sexChange(event) {
    this.setState({ sex: event.target.value });
  }
  // 下拉框onChange绑定事件
  fruitChange(event) {
    this.setState({ fruit: event.target.value });
  }

  render() {
    // 下拉元素的动态生成
    const fruitSelector = ['banana', 'apple', 'orange'].map((elem, index) => (
      <option value={elem} key={index}>
        {elem}
      </option>
    ));
    return (
      <div className="wrapper">
        <div className="input">
          <input
            type="text"
            value={this.state.content}
            onChange={this.inputChangeHandler}
          />
          <div>INPUT: {this.state.content}</div>
        </div>

        <div className="sex">
          <input
            type="radio"
            value="1"
            checked={this.state.sex === '1'}
            onChange={this.sexChange}
          /><input
            type="radio"
            value="2"
            checked={this.state.sex === '2'}
            onChange={this.sexChange}
          /><div>SEX:{this.state.sex === '1' ? '男' : '女'}</div>
        </div>

        <div className="select">
          <select
            name="city"
            value={this.state.fruit}
            onChange={this.fruitChange}
          >
            {fruitSelector}
          </select>
          <div>SELECTED:{this.state.fruit}</div>
        </div>
      </div>
    );
  }
}

双向绑定的方法:

  1. 绑定表单的value属性值到state中的变量
  2. 监听表单控件的onChange事件,当表单发生变化的时候触发绑定事件函数
  3. 利用绑定事件传入的event.target获取变化事件对象,通过event.target.value获取相应事件变化的相应值
  4. 通过将state中的value重新赋值实现数据的绑定显示
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值