react实现双向绑定(复杂数组)

该文章展示了一个React组件,它维护了一个产品列表,每个产品包含姓名和型号。组件实现了两个处理函数,分别用于在输入事件时更新产品的姓名和型号。状态管理是通过React的setState方法进行的,并使用了ES6的语法特性,如扩展运算符和箭头函数。
摘要由CSDN通过智能技术生成

import React from 'react';

class Products extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      products: [
        { name: 'aaa', type: 'a01' },
        { name: 'bbb', type: 'b01' },
        { name: 'ccc', type: 'c01' }
      ]
    };
  }

  handleInputChangeName = (event, index) => {
    const { value } = event.target;
    this.setState(prevState => {
      const products = [...prevState.products];
      products[index].name = value;
      return { products };
    });
    console.log(this.state)
  };
  handleInputChangetype = (event, index) => {
    const { value } = event.target;
    this.setState(prevState => {
      const products = [...prevState.products];
      products[index].type = value;
      return { products };
    });
  };

  render() {
    const { products } = this.state;
    return (
      <div>
        {products.map((product, index) => (
          <div key={index}>
            姓名
            <input
            name='姓名'
              type="text"
              value={product.name}
              onChange={event => this.handleInputChangeName(event, index)}
            />
            型号:
            <input
              type="text"
              value={product.type}
              onChange={event => this.handleInputChangetype(event, index)}
            />
            
          </div>
        ))}
      </div>
    );
  }
}

export default Products;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值