无法在 formik 内部的 react-query(mutation) 中更新参数



当我在formik内部调用我的突变函数时,args不会赋值。它总是空的。我想知道为什么会发生这种情况,我也尝试使用useState钩子将args从formik传递到useMutation钩子,但什么都不起作用。我错过了什么?

使用突变:

const changePasswordOnClick = useMutation<Record<string, string>, undefined, ChangePassword>(
() => axios.post(
url,
{email: '', password:'', new_password: ''},
),
{
onSuccess: (req) => {
console.log('Success!!!!', req)
},
onError: (req) => {
console.log('onError', req);
},
},
);

formik:

<Formik initialValues={{password: '', email: '', new_password:'' }}
validationSchema={validateSchema}
onSubmit={async (data,{setSubmitting, resetForm})=>{

setSubmitting(true)

changePasswordOnClick.mutate({
email:data.email, // always empty, why?                               
password: data.password, //always empty, why?                                       
new_password: data.new_password //always empty, why?
})
console.log('Submit', data) // has data
setSubmitting(false)

closeModalWindow.current.click()
resetForm()
}}>

我想明白了。需要划分axios并响应查询

第一个(接受args的axios函数(

const setNewPassword = (email, password, new_password) => axios.post(url, 

第二个(使用突变挂钩(

const changePasswordOnClick = useMutation(setNewPassword, {
onSuccess:(data)=>{
console.log(data);
}
})

Formik(形式(

<Formik initialValues={{password:'', email: '', new_password:'' }}
validationSchema={validateSchema}
onSubmit={(values,{setSubmitting, resetForm})=>{
setSubmitting(true)
changePasswordOnClick.mutate({
email:values.email, 
password: values.password
new_password:values.new_password})

setSubmitting(false)
resetForm()
}}

最新更新