ReactJS Formik隐藏字段向服务器发送空值

ReactJS Formik隐藏字段向服务器发送空值,reactjs,formik,Reactjs,Formik,我是新手,我使用的是FormIK,它可以很好地发布表单数据,除非我在其中添加隐藏字段 <Field type="hidden" className="form-control" name="hiddenField" /> 当我发布表单时,它会发送隐藏字段的空值 我还向Formik提供了初始值 <Formik initialValues={{ first_name:'',last_name:'',username:'',email:'',password:'', pass

我是新手,我使用的是FormIK,它可以很好地发布表单数据,除非我在其中添加隐藏字段

<Field type="hidden" className="form-control" name="hiddenField" /> 

当我发布表单时,它会发送隐藏字段的空值 我还向Formik提供了初始值

<Formik initialValues={{
first_name:'',last_name:'',username:'',email:'',password:'',
password_confirmation:'',distributor:'',phone_number:'',address:'',country:'',
state:'',city:'',zip_code:'',hiddenField:''
}} >


有什么遗漏吗?

我刚才也遇到过这个问题。我的工作是只添加一个初始值,甚至不使用隐藏字段。结果是,在
onSubmit()
中,
values
对象包含我的隐藏字段键和
initialValues


我想知道是否有人知道正确的方法?我的方法似乎有点粗糙?

以下是我如何在Formik中管理隐藏字段值的方法

setFieldValue
作为参数传递到

{({ values, errors, touched, handleSubmit, setFieldValue , isSubmitting }) => (
<Form>
<div className="form-group has-feedback">
<input type="hidden" value="testing" name="hiddenField" />
{({values,errors,toucted,handleSubmit,setFieldValue,isSubmitting})=>(
然后我设法更改了onClick方法(可以根据需要使用)

{setFieldValue(“hiddenField”、“yourValueHere或dynamicVariable”);}
已禁用={isSubmitting}>寄存器

如何更新您的
hiddenField
,您发布的代码显示
hiddenField
的初始值为空。您是否使用
setFieldValue
在某个地方更新它?我通过表单字段回调函数中的
setFieldValue
来管理它。@ThaiDuongTran如果下一步对您有效,请查看答案。@ThaiDuongTranime。你的方式很好。我实际上会将你的答案标记为正确答案。我会添加一个补充,如果你使用的是yup
validationSchema
,你也需要将字段添加到架构中。这还不够:你必须确保你的
value=“…”
引用的是Formik托管值。例如:
值={values.hiddenField}
<button type="submit" className="btn btn-primary btn-block btn-flat" 
onClick={() => {setFieldValue("hiddenField", "yourValueHere OR dynamicVariable"); }} 
disabled={isSubmitting}>Register</button>