在使用ES6类时,“超级()”和“超级(道具)”有什么区别?

在使用ES6类时,“超级()”和“超级(道具)”有什么区别?

什么时候通过?propssuper()为什么?

class MyComponent extends React.Component {
  constructor(props) {
    super(); // or super(props) ?
  }}


慕田峪4524236
浏览 550回答 3
3回答

慕码人8056858

当一个人需要通过时,只有一个原因。props到super():当你想要访问this.props在构造函数中。经过:class MyComponent extends React.Component {         constructor(props) {         super(props)         console.log(this.props)         // -> { icon: 'home', … }     }}未通过:class MyComponent extends React.Component {         constructor(props) {         super()         console.log(this.props)         // -> undefined         // Props parameter is still available         console.log(props)         // -> { icon: 'home', … }     }     render() {         // No difference outside constructor         console.log(this.props)         // -> { icon: 'home', … }     }}请注意,经过或不通过props到super有无效关于以后使用this.props外constructor..那是render, shouldComponentUpdate,或事件处理程序总能接触到它。这在索菲·阿尔伯特的书中有明确的说法回答一个类似的问题。文件-状态和生命周期,将本地状态添加到类中,点2-建议:类组件应该始终使用props.但是,没有提供任何理由。我们可以推测,这要么是子类的原因,要么是为了将来的兼容性。
打开App,查看更多内容
随时随地看视频慕课网APP