Formik将自定义的道具传递给自定义字段组件

时间:2020-09-05 20:52:29

标签: reactjs typescript formik

大家晚上好, 我在使用自定义Formik字段时遇到了一个小问题。

我正在使用自己的自定义Field,例如:

<Field name="pdfFile" component={FileUpload} />

FileUpload道具如下:

interface FileUploadProps {
    field: FieldInputProps<any>; //These props should probably be derived from Formik
    form: FormikProps<any>;
    width: string;
    height: string;
}

字段和表单已正确传递到组件中,但是如何将宽度和高度传递到组件中?尝试过,但没有成功。

<Field 
    name="pdfFile" 
    component={(props: any) => (
        <FileUpload
            field={props.field}
            form={props.form}
            width={pdfWidth}
            height={pdfHeight}
        />
    )} 
/>  

不幸的是,Formik API没有提到如何解决此问题。有没有人遇到过类似的问题,并且知道如何解决这个问题?

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

如果您将Field中未使用的道具传递给Field,它将被传递到component道具中的组件。

所以您可以像这样

<Field 
    name="pdfFile" 
    width={pdfWidth}
    height={pdfHeight}
    component={FileUpload} 
/> 

并获取组件props中的值

const FileUpload = (props) => {
    // props.width
    // props.height
    return ( /* ... */ )
}