在React Hook表单中将对象传递给onSubmit的方法有多种方式。以下是其中一种常见的做法:
import React, { useState } from 'react';
function MyForm() {
const [formData, setFormData] = useState({});
const handleChange = (e) => {
const { name, value } = e.target;
setFormData((prevData) => ({
...prevData,
[name]: value,
}));
};
const handleSubmit = (e) => {
e.preventDefault();
// 在这里可以使用formData对象进行提交或其他操作
console.log(formData);
};
return (
<form onSubmit={handleSubmit}>
<input type="text" name="name" onChange={handleChange} />
<input type="email" name="email" onChange={handleChange} />
<button type="submit">提交</button>
</form>
);
}
export default MyForm;
在上面的代码中,我们使用useState Hook创建了一个名为formData的状态变量,用于存储表单数据。handleChange函数用于更新formData对象的属性值,根据输入框的name属性来确定要更新的属性。handleSubmit函数用于处理表单的提交事件,可以在其中使用formData对象进行提交或其他操作。
import React, { useRef } from 'react';
function MyForm() {
const formRef = useRef(null);
const handleSubmit = (e) => {
e.preventDefault();
const formData = new FormData(formRef.current);
const data = Object.fromEntries(formData.entries());
// 在这里可以使用data对象进行提交或其他操作
console.log(data);
};
return (
<form ref={formRef} onSubmit={handleSubmit}>
<input type="text" name="name" />
<input type="email" name="email" />
<button type="submit">提交</button>
</form>
);
}
export default MyForm;
在上面的代码中,我们使用useRef Hook创建了一个名为formRef的引用,用于获取表单的引用。在handleSubmit函数中,我们使用FormData对象来获取表单数据,并将其转换为普通的JavaScript对象。然后可以在其中使用data对象进行提交或其他操作。
无论使用哪种方式,都可以将表单中的数据作为对象传递给onSubmit方法进行处理。根据具体的业务需求,可以进一步对表单数据进行验证、处理或发送到服务器等操作。
领取专属 10元无门槛券
手把手带您无忧上云