Ant Design 输入框 onChange 事件:非编辑框传值为空的解决方法
当只编辑某一个输入框时,其他输入框的数据未编辑,传参时非编辑的输入框传值为空值的原因可能是因为 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 著作权归作者所有。请勿转载和采集!