2017-07-27 2891 views
4

我是新来的typescript和redux,我试图通过SimpleForm从redux形式的例子。TS2339:属性不存在于类型'IntrinsicAttributes&IntrinsicClassAttributes <FormInstance <{},部分<ConfigProps <{}, {}> >>>&...'

我有以下表单组件

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支撑的表单呈现正常,但显然取消按钮不起作用。

我在这里做错了什么?

+0

读你发现这方面的任何解决方案? –

回答

0

你需要一些分型添加到您的形式

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); 

在一个侧面说明终极版型分型对他们应该如何应用一个陡峭的学习曲线和非常少的文档。

我找到了最好的资源是通过typings tests

相关问题