2017-08-02 12 views
3

私は一見些細な問題を抱えていますが、私の人生ではわかりません。mapDispatchToProps passess undefined props

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のボイラープレート形式を使用すると、propが渡されます。

私はここで何を見ませんか?

+0

おそらく 'FooContainerConnected'の代わりに' FooContainer'をインポートして使用していますか? –

+0

@IngoBürkNope。接続したものを使用しています –

+0

もっとコードを表示できますか?コンポーネント全体とその使用方法理想的には最小限の作業例として。 –

答えて

1

だから、もう少し掘り下げて、循環依存があることがわかりました。この依存性を排除

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

はアヒルの機能は、最初は誰でも同様の問題が発生したこの答えによって緩和されていることを

希望定義されていない問題を解消します。 :)

関連する問題