Reactjs 使用withFormik的动态Formik表单
我正在尝试创建一个React组件,它将返回一个使用withFormik的Formik表单。此组件将作为返回表单内容的道具传递给另一个组件。这可能吗?我无法确定如何将自定义道具传递给mapPropsToValues(基本上是如何将自定义道具替换为:Reactjs 使用withFormik的动态Formik表单,reactjs,forms,formik,Reactjs,Forms,Formik,我正在尝试创建一个React组件,它将返回一个使用withFormik的Formik表单。此组件将作为返回表单内容的道具传递给另一个组件。这可能吗?我无法确定如何将自定义道具传递给mapPropsToValues(基本上是如何将自定义道具替换为: one:'', two:'', three:'' 在下面的代码中: const DynamicCustomForm = ({FormType, formName, formFields, ...props}) => {
one:'',
two:'',
three:''
在下面的代码中:
const DynamicCustomForm = ({FormType, formName, formFields, ...props}) => {
console.log(props);
const {
values,
touched,
errors,
status,
handleChange,
handleBlur,
setFieldValue,
setFieldTouched,
validateField,
validateForm,
handleSubmit,
isSubmitting,
} = props;
return (
<form onSubmit={handleSubmit}>
<Field name={formName} >
{({
field,
form,
meta,
}) => (
<FormType />
)}
</Field>
<Button type="submit" className="button" disabled={isSubmitting}>
Submit
</Button>
</form>
);
};
const FormikEnhancedDynamicCustomForm = withFormik({
mapPropsToValues: () => ({
one:'',
two:'',
three:''
}),
validateOnMount: false,
validateOnBlur: false,
//validate: validate,
handleSubmit: (values, { setSubmitting }) => {
handleSubmit(values);
setTimeout(() => {
alert(JSON.stringify(values, null, 2));
setSubmitting(false);
}, 1000);
},
displayName: 'DynamicCustomForm',
})(DynamicCustomForm);
export default FormikEnhancedDynamicCustomForm;
constdynamicccustomform=({FormType,formName,formFields,…props})=>{
控制台日志(道具);
常数{
价值观
感动的,
错误,
地位
handleChange,
车把,
setFieldValue,
塞特菲尔德被感动了,
验证场,
验证表单,
手推,
提交,
}=道具;
返回(
{({
领域
形式,
元,
}) => (
)}
提交
);
};
常数formikenhancedDynamicAccustomForm=带formik({
mapPropsToValues:()=>({
一:",,
两个:'',
三个:''
}),
验证装载:错误,
模糊:错,
//验证:验证,
handleSubmit:(值,{setSubmitting})=>{
handleSubmit(值);
设置超时(()=>{
警报(JSON.stringify(值,null,2));
设置提交(假);
}, 1000);
},
displayName:“DynamicAccustomForm”,
})(动脉学形态);
导出默认表单hancedDynamicAccustomForm;
这篇文章帮助我确定,如果我删除mapPropsToValues,那么作为道具传递给组件的任何带有Formik表单的内容都将被添加为Formik值。如果有其他方法可以实现这一点,我仍然感兴趣