这是我使用Field组件的代码:
interface EditProfileFormProps extends FormProps {
defaults: object;
submit: () => {};
initialValues: object;
roles: object[];
specialties: object[];
}
const EditProfileForm: React.StatelessComponent<EditProfileFormProps> = (props: EditProfileFormProps) => {
return (
<Form onSubmit={props.submit}>
<div>
<Field name="firstName" component={FirstName} type="text" />
</div>
<div>
<Field name="lastName" component={LastName} type="text" />
</div>
<div>
<Field name="role" props={{ roles: props.roles }} component={Role} type="select" />
</div>
</Form>
);
};
//FirstName.tsx
export const FirstName: React.StatelessComponent<React.InputHTMLAttributes<HTMLInputElement>> = ({
input,
}: React.InputHTMLAttributes<HTMLInputElement> & WrappedFieldProps) => (
<FormGroup>
<Label for="firstName">First Name</Label>
<Input {...input} type="text" name="firstName" id="firstName" />
</FormGroup>
);
这是我看到的TS错误:
[ts]
输入'{name:“firstName”; component:StatelessComponent>; type:...'不能分配给类型'((IntrinsicAttributes&IntrinsicClassAttributes>&Readonly
输入'{name:“firstName”; component:StatelessComponent>;类型:...”不能分配给类型“IntrinsicAttributes&IntrinsicClassAttributes>和Readonly
输入'{name:“firstName”; component:StatelessComponent>;类型:...”不能分配给“只读和TextareaHTMLAttributes>”类型。
属性“组件”的类型不兼容。
类型'StatelessComponent>'不能分配给类型'“input” | “选择” | “textarea” | ComponentClass | StatelessComponent ...'。
类型'StatelessComponent>'不可分配给'StatelessComponent'类型。
输入'React.ReactElement | “null”不可分配给“React.ReactElement |类型”。无效的'。存在两种使用此名称的不同类型,但是它们是无关的。
无法将类型'ReactElement'分配给类型'ReactElement |无效的'。
类型“React.ReactElement”不可分配给类型“React.ReactElement”。存在两种使用此名称的不同类型,但是它们是无关的。
属性“类型”的类型不兼容。
输入'string | React.ComponentClass |无法将React.StatelessComponent分配给类型'string | React.ComponentClass | React.StatelessComponent'。存在两种使用此名称的不同类型,但是它们是无关的。
不能将类型'ComponentClass'分配给类型'string | ComponentClass | StatelessComponent”。
类型'ComponentClass'不可分配给类型'StatelessComponent'。
类型'ComponentClass'不提供签名'(props:any,context ?: any)的匹配:ReactElement |无效的'。
有人看到我在做什么错吗?
最佳答案
不确定这是否是您的问题,但是当我们制作一个无状态组件时,我们的签名看起来像是React.SFC
而不是React.StatelessComponent
。
关于reactjs - Redux-Form v7字段组件 typescript 错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47719472/