为什么react类组件总是需要在其构造函数中调用super(props)?

Ezo*_* T. 10 javascript reactjs

在reactjs.org发布的教程中,声明"类组件应始终使用props" 调用基础构造函数.根据StackOverflow的回答,在我自己的研究中,似乎super(props)可以用super()if this.props在构造函数中使用if 来代替.

因此,我的问题是,为什么我们总是props在reactjs中传递给基础构造函数?建议听起来好吗?为什么听起来好听(或不合理)?

PS将屏幕截图上传到此问题,以防在回答此问题时更新原始教程.

reactjs教程

Shu*_*tri 6

尽管建议将道具传递给super它,但并非绝对必要。

传递它只会在一种奇怪的情况下提供帮助,在这种情况下,您可能在构造函数中有一个称为方法的方法,然后在将来的某个时间点决定在其中使用道具。现在,由于尚未将prop传递给super,因此在构造函数中无法使用prop ,这将导致错误。这种情况可能很难调试,因此建议您始终在编写构造函数时始终传递道具,以确保this.props即使在构造函数退出之前也已设置属性。

  • 可能还值得一提的是[`super`构造函数实际上做了什么](https://github.com/facebook/react/blob/ba6477aa3cc0b189f4c9b805bf20edb2a2d94e91/packages/react/src/ReactBaseClasses.js#L21-L29) - 即它设置 `this.props`、`this.context` 和一些内部数据结构。 (2认同)