TS2339:属性 在类型 'IntrinsicAttributes & IntrinsicClassAttributes<FormInstance<{}, Partial<ConfigProps<{}, {}>>>> & ...' 上不存在
TS2339: Property does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<FormInstance<{}, Partial<ConfigProps<{}, {}>>>> & ...'
我是 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-form 打字的学习曲线很陡,而且关于如何应用打字的文档很少。
我发现最好的资源是通读 typings tests
我是 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-form 打字的学习曲线很陡,而且关于如何应用打字的文档很少。
我发现最好的资源是通读 typings tests