2017-08-31 53 views
0

我有兩個組成部分(聰明和愚蠢的)連接部件打字稿警告如下:用自己的道具

// Container component file... 

interface OwnProps { 
    id: Id; 
} 

function mapStateToProps(state: State, ownProps: OwnProps) { 
    return { isActive: ... }; 
} 

export const Container: any = connect(mapStateToProps, null)(DumbComponent); 

// Dumb component file... 

interface DumbComponentProperties { 
    isActive: boolean; 
} 

export class DumbComponent extends React.Component<DumbComponentProperties, {}> { 
    ... 
} 

我得到下DumbComponentconnect紅色波浪警告,即:

'typeof DumbComponent'類型的參數不可分配給參數 類型'Component OwnProps & {isActive:boolean; }」 ....>

如果我讓通過id?id可選的,這個修正錯誤。這看起來像TypeScript認爲DumbComponent需要OwnProps類型,因爲id是作爲一個道具傳遞給它嗎?我不明白爲什麼會出現這種情況,不僅屬性被傳遞給DumbComponent

+0

哪裏都是類型國家和ID來定義? –

+0

它們在店內定義。我不相信這些信息與我的問題有關。 –

+0

這很奇怪,因爲代碼實際上適用於我,如果我填寫這些類型的簡單界面.. –

回答

2

我沒有看到你的代碼中的任何問題,但它的輸入功能mapStateToProps功能,是一個很好的做法,

function mapStateToProps(state: State, ownProps: OwnProps): DumbComponentProperties { return { isActive: ... }; }