2017-07-27 2890 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

相關問題