Formik 将自定义 Props 传递给自定义 Field 组件

Lik*_*per 9 typescript reactjs formik

大家晚上好,我在定制 Formik 字段方面遇到了一个小问题。

我正在使用自己的习惯,Field例如:

<Field name="pdfFile" component={FileUpload} />
Run Code Online (Sandbox Code Playgroud)

FileUpload 属性如下所示:

interface FileUploadProps {
    field: FieldInputProps<any>; //These props should probably be derived from Formik
    form: FormikProps<any>;
    width: string;
    height: string;
}
Run Code Online (Sandbox Code Playgroud)

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

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

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

非常感谢你的帮助!

Ven*_*sky 14

如果您将一个 prop 传递给Field中未使用的组件Field,它将被传递给 prop 中的组件component

所以你可以这样做

<Field 
    name="pdfFile" 
    width={pdfWidth}
    height={pdfHeight}
    component={FileUpload} 
/> 
Run Code Online (Sandbox Code Playgroud)

并获取组件 props 中的值

const FileUpload = (props) => {
    // props.width
    // props.height
    return ( /* ... */ )
}
Run Code Online (Sandbox Code Playgroud)