Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 使用withFormik的动态Formik表单_Reactjs_Forms_Formik - Fatal编程技术网

Reactjs 使用withFormik的动态Formik表单

Reactjs 使用withFormik的动态Formik表单,reactjs,forms,formik,Reactjs,Forms,Formik,我正在尝试创建一个React组件,它将返回一个使用withFormik的Formik表单。此组件将作为返回表单内容的道具传递给另一个组件。这可能吗?我无法确定如何将自定义道具传递给mapPropsToValues(基本上是如何将自定义道具替换为: one:'', two:'', three:'' 在下面的代码中: const DynamicCustomForm = ({FormType, formName, formFields, ...props}) => {

我正在尝试创建一个React组件,它将返回一个使用withFormik的Formik表单。此组件将作为返回表单内容的道具传递给另一个组件。这可能吗?我无法确定如何将自定义道具传递给mapPropsToValues(基本上是如何将自定义道具替换为:

   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值。如果有其他方法可以实现这一点,我仍然感兴趣