2017-08-02 51 views
3

我有一個看似微不足道的問題,但對於我的生活我無法弄清楚。mapDispatchToProps passess undefined道具

FooContainer.tsx

... 
public render() { 
    ... 

    this.props.onSubmit(123) // FooContainer.tsx:81 Uncaught TypeError: this.props.onSubmit is not a function 
} 
... 
export interface FooDispatchToProps { 
    onSubmit: (bar: number) => Thunk; // <- from redux-thunk 
} 
const mapDispatchToProps = { 
    onSubmit: submitFoo, // a thunk. From SomeDuck.ts 
}; 
export const FooContainerConnected = connect<{}, FooDispatchToProps, {}>(
    undefined, 
    mapDispatchToProps, 
)(FooContainer); 

SomeDuck.ts

export function submitFoo(bar: number): Thunk { 
    return (dispatch, getState) => { 
     dispatch(submitFooAction(bar)); 
    }; 
} 

的道具不被通過與mapDispatchToProps這個速記符號。如果我使用mapDispatchToProps的完整樣板格式,則道具將被傳遞。

我在這裏沒有看到什麼?

+0

您是否正在導入並使用'FooContainer'而不是'FooContainerConnected',也許? –

+0

@IngoBürk沒有。我正在使用連接的一個 –

+0

你可能會展示更多代碼嗎?整個組件以及你如何使用它?理想的是作爲一個最小的工作例子。 –

回答

1

好吧,所以我做了一些更多的挖掘,發現有一個循環依賴。

Utils ==> FooContainer ==> Ducks ==> Utils 

消除這種依賴關係消除了問題,從鴨功能最初不確定

希望,無論誰遇到了類似的問題是由這個答案鬆了口氣。 :)

相關問題