我正在构建一个使用Formik的React Native应用程序。当我提交表单时,我调用handleSubmit
<Formik
onSubmit={values => {
handleSubmit(values)
}}>
我在表单上的return
之前定义了这个:
const handleSubmit = (values) => {
const { status, data } = usePostRequest("/api/holidays-request", {
dateFrom: "2023-02-01",
dateTo: "2023-02-28",
fromHalf: 0,
toHalf: 0,
});
};
我在这里硬编码了一些值以供测试。
我的usePostRequest
是我编写的一个自定义钩子,用于将数据实际发送到我的API。
当我提交表单时,handleSubmit
被触发,但我得到一个错误:
警告:从submitForm()捕获到未处理的错误[错误:无效的挂接调用。只能在函数组件的主体内部调用挂接。以下原因之一可能会导致这种情况:
1.您可能有不匹配的React和呈现器版本(例如React DOM)
1.你可能违反了钩子的规则
1.同一应用程序中可能有多个React副本
我失败的原因一定是原因2,但是我不确定如何使用我的usePostRequest
从表单提交值。
2条答案
按热度按时间jei2mxaa1#
我建议您查看一下定制钩子的文档
在这种特殊情况下,您应该将post逻辑编写为函数,并在这里直接使用它。
oug3syen2#
不要在事件处理程序中调用挂钩。
有关详细信息,请参见Invalid Hook Call Warning。