没有道具时要传递给super的什么?

时间:2018-10-19 10:23:01

标签: reactjs typescript

我有这个组件:

class Logos extends React.Component<{}, LogosState> {
    ...

    public constructor() {
        super({});
        ...
    }
}

我从这里了解到,即使组件没有道具,我也确实需要将参数传递给super。

https://github.com/DefinitelyTyped/DefinitelyTyped/pull/20987#issuecomment-339216734

我的结论是尝试上面的代码。但我得到警告:

Warning: Logos(...): When calling super() in `Logos`, make sure to pass up the same props that your component's constructor was passed.

如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

public constructor(props) {
    super(props);
    ...
}

这样做或

constructor(props) {
  super(props);
  ...
}

答案 1 :(得分:1)

您可以改用它。

constructor(){
   super()
}

react的正式文档中,react建议我们使用

constructor(props){
   super(props)
}

添加道具的唯一原因是要在构造函数中使用this.props。如果您不想使用this.props,则最好不要将prop传递给super。

答案 2 :(得分:0)

我最终这样做了。在此之前发布的其他答案很有帮助,并导致我找到了该解决方案,但并不完整:

class Logos extends React.Component<{}, LogosState> {
    ...

    public constructor(props: {}) {
        super(props);
        ...
    }
}