gpt4 book ai didi

typescript - TS2339 : Property does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes>>> & ...'

转载 作者:搜寻专家 更新时间:2023-10-30 21:01:07 25 4
gpt4 key购买 nike

我是 typescript 和 redux 的新手,我正在尝试使用 redux-form 中的 SimpleForm 示例。

我有以下表单组件

import * as React from 'react';
import {Field, reduxForm} from 'redux-form';

class SimpleForm extends React.Component<any, any> {

public render() {

const { handleSubmit, doCancel } = this.props;

return (
<div>
<h1>Simple Form</h1>

<form onSubmit={handleSubmit}>
<div>

<label htmlFor="firstName">First Name</label>
<Field name="firstName" component="input" type="text" />

<label htmlFor="lastName">Last Name</label>
<Field name="lastName" component="input" type="text" />

</div>
<div>
<button type="button" onClick={doCancel}>Cancel</button>
<button type="submit">Submit</button>
</div>


</form>

</div>
)};

}
export default reduxForm({ form: "simpleForm" })(SimpleForm);

然后我使用组件使用

return (
<div>
<SimpleForm onSubmit={this.handleSubmit} doCancel={this.doCancel} />

</div>
);`

这给了我以下错误

    TS2339: Property 'doCancel' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<FormInstance<{}, Partial<ConfigProps<{}, {}>>>> & ...'.

如果我删除 doCancel 属性,表单呈现正常,但显然取消按钮不起作用。

我在这里做错了什么?

最佳答案

您需要在表单中添加一些类型

import { reduxForm, InjectedFormProps } from 'redux-form';

interface Props {
doCancel():
}

class SimpleForm extends React.Component<InjectedFormProps<any, Props> & Props> {
....
}

export default reduxForm<any, Props>({ form: "simpleForm" })(SimpleForm);

附带说明一下,redux 形式的类型具有陡峭的学习曲线,并且关于如何应用它们的文档非常少。

我发现最好的资源是通读 typings tests

关于typescript - TS2339 : Property does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<FormInstance<{}, Partial<ConfigProps<{}, {}>>>> & ...' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45353580/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com