这是我使用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/

10-11 13:04