mapDispatchToProps passess undefined props

时间:2017-08-02 09:55:23

标签: reactjs redux redux-thunk

我有一个看似微不足道的问题,但对于我的生活,我无法理解。

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的完整样板格式,则传递道具。

我在这里看不到什么?

1 个答案:

答案 0 :(得分:1)

好的,所以我做了一些挖掘,发现存在循环依赖。

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

消除这种依赖性消除了鸭子的功能最初未定义的问题

希望遇到类似问题的人对此答案感到宽慰。 :)