【发布时间】:2021-01-28 13:52:24
【问题描述】:
我做了一个钩子useSendFormData,当我使用它时,我得到了无效的钩子调用。
上钩
-
来自 SubmitForm 的数据
-
网址:字符串,
-
方法:发布或放置
-
成功: 成功时的成功消息
-
id:不需要,但如果项目有 id i 被添加到 api 调用中。
代码:
export const useSendFormData = async ({
formData,
url,
method,
success,
id,
}) => {
const [data, setData] = useState({
error: "",
loading: true,
success: "",
data: [],
});
const setPartData = (partialData) => setData({ ...data, ...partialData });
try {
if (method === "post") {
const { data } = await axios.post(
`${SERVER_API}api/v1/${url}/${id ?? ""}`,
formData
);
setPartData({ data, success, error: null });
} else if (method === "put") {
const { data } = await axios.post(
`${SERVER_API}api/v1/${url}/${id ?? ""}`,
formData
);
setPartData({ data, success, error: null });
}
setPartData({
loading: false,
});
} catch (err) {
const { data } = err.response;
setPartData({
error: data.error,
success: null,
loading: false,
});
}
return {
data,
};
};
我在提交表单中调用它,我不知道这个问题,但我使用 react-hook-forms 处理表单
const sendFormData = useSendFormData
const handleForm = async (info) => {
const { data } = await sendFormData({
formData: info,
url: "auth/forgot-password",
method: "post",
success: "A password reset message has been sent to your email",
});
console.log(data);
reset();
};
如果我改变了
const sendFormData = useSendFormData
到
const sendFormData = useSendFormData()
我收到一个错误:
无法解构“未定义”的属性“formData”,因为它是未定义的
我怎样才能完成这项工作,如果您发现任何改进此自定义挂钩的方法,我将非常感谢您的帮助和时间。
【问题讨论】:
标签: javascript reactjs optimization react-hooks react-hook-form