我有这个组件。
//@flow
import React from 'react'
import { Field } from 'redux-form'
import type { FieldProps } from 'redux-form';
import TextField from 'material-ui/TextField'
const renderField= ({ input, label, disabled, meta: { touched, error } }: FieldProps) => {
//component defn
}
export const InputField = (props) => {
return (
<Field
{...props}
component={renderField}
/>
)
}
输入字段接受所有道具,redux-form字段接受加上自定义道具。 问题是如何为InputField流动我的道具? redux-forms index.js.flow导出renderField(FieldProps)的类型,但它不导出Field组件的类型。我错过了什么吗?
答案 0 :(得分:1)
您可以使用React.ElementProps
(import type { ElementProps } from 'react'
或将您的反应导入更改为import * as React from 'react'
)。
然后你可以做类似的事情:
type OGFieldProps = React.ElementProps<typeof Field>
type Props = $Diff<OGFieldProps, { component: $PropertyType<OGFieldProps, 'component'> }>
我正在做差异的原因是因为否则你必须传递组件,但是因为你已经在你的InputField
中做了,你可能不希望有人在思考时传递一个它会覆盖。