当只编辑某一个输入框时,其他输入框的数据未编辑,传参时非编辑的输入框传值为空值的原因可能是因为 onChange 事件会在输入框的值发生改变时触发,而非编辑的输入框的值没有改变,因此传递的参数为当前输入框的值,即空值。

要解决这个问题,可以在传参时判断非编辑的输入框的值是否为空,如果为空,则传递原来的值,不为空则传递当前输入框的值。例如:

import React, { useState } from 'react';
import { Input } from 'antd';

const MyComponent = () => {
  const [value1, setValue1] = useState('');
  const [value2, setValue2] = useState('');
  const [value3, setValue3] = useState('');

  const handleChange1 = (e) => {
    setValue1(e.target.value);
  };

  const handleChange2 = (e) => {
    setValue2(e.target.value);
  };

  const handleChange3 = (e) => {
    setValue3(e.target.value);
  };

  const handleSubmit = () => {
    // 判断非编辑的输入框的值是否为空
    const newValue2 = value2 === '' ? '原来的值' : value2;
    const newValue3 = value3 === '' ? '原来的值' : value3;
    
    // 使用newValue2和newValue3进行提交操作
    console.log(newValue2, newValue3);
  };

  return (
    <div>
      <Input value={value1} onChange={handleChange1} />
      <Input value={value2} onChange={handleChange2} />
      <Input value={value3} onChange={handleChange3} />
      <button onClick={handleSubmit}>提交</button>
    </div>
  );
};

export default MyComponent;

在上述示例中,通过判断非编辑的输入框的值是否为空,来决定传递的参数是当前输入框的值还是原来的值。


原文地址: https://www.cveoy.top/t/topic/o5Cm 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录