将React defaultProps与connect

时间:2017-08-21 21:33:55

标签: reactjs typescript redux react-redux

我尝试将defaultProps添加到MyComponent,然后将其连接到redux。为此,我使用Partial<MyComponentProps>作为defaultProps类型。但是,Typescript抱怨

  

属性类型barPartial<MyComponentProps>中是可选的,但在{ bar: number }中是必需的。

我想弄清楚为什么会这样,以及一个好的解决方案。 这是代码:

interface MyComponentProps {
  foo: string;
  bar: number;
}

class MyComponent extends React.PureComponent<MyComponentProps, void> {
  public static defaultProps: Partial<MyComponentProps> = {
    foo: "hello"
  };

  public render() {
    return null;
  }
}

function mapStateToProps(state: any) {
  return {
    bar: 7
  };
}

connect(mapStateToProps)(MyComponent);

Typescript在MyComponent

connect(mapStateToProps)(MyComponent);部分抱怨

defaultProps投射到MyComponentProps,或者mapStateToProps(state: any): Partial<MyComponentProps>都可以投放,但这似乎应该是开箱即用的。 defaultProps是官方的React模式。

0 个答案:

没有答案