当前位置: 首页 > 面试题库 >

在React构造函数中调用super()有什么作用?

万高轩
2023-03-14
问题内容

从文档中学习React
并遇到以下示例:

class Square extends React.Component {
  constructor() {
    super();
    this.state = {
      value: null,
    };
  }
  ...
}

根据Mozilla的说法,super允许您this在构造函数中使用。是否有其他原因可以单独使用super(我知道super也可以访问父类的方法),但是使用React时,是否还有其他仅super()通过自身调用的用例?


问题答案:

super()仅在具有构造函数的React组件内部被调用。例如,以下代码不需要超级:

class App extends React.component {
    render(){
        return <div>Hello { this.props.world }</div>;
    }
}

但是,如果我们有一个构造函数,那么它super()是强制性的:

class App extends React.component {
    constructor(){
        console.log(this) //Error: 'this' is not allowed before super()

    }
}

之所以this不能被允许之前的原因super()是因为thissuper()调用if未初始化。但是,即使不使用,this我们也需要super()内部构造函数,因为ES6 class constructors MUST call super if they are subclasses。因此,super()只要有构造函数,就必须调用。(但是子类不必具有构造函数)。

super(props)如果必须使用this.props,我们可以在构造函数内部调用,例如:

class App extends React.component{
    constructor(props){
        super(props);
        console.log(this.props); // prints out whatever is inside props

    }
}

我希望我能说清楚。



 类似资料:
  • 问题内容: 我正在处理一个扩展的类。 这不是我的代码,它在开始构造GUI之前先进行调用。我想知道为什么要这样做,因为我一直只访问超类的方法而不必调用; 问题答案: 对于具有父级的所有类(这是Java中每个用户定义的类),都有一个不带参数的隐式调用,因此通常不需要显式调用。但是,如果父级的构造函数接受参数,并且你希望指定它们,则可以使用参数调用。此外,如果父级的构造函数接受参数,并且没有默认的无参数

  • 本文向大家介绍React组件的构造函数有什么作用?相关面试题,主要包含被问及React组件的构造函数有什么作用?时的应答技巧和注意事项,需要的朋友参考一下 在react的新的写法中,每一个组件都是一个类,这个很符合es6的语法规范,在es6中要想创建一个对象,就要调用相应的构造函数, react的组件渲染有两种情况,第一种情况是第一次渲染,第二种情况是状态更新时候重新渲染,构造函数在组件的初次渲染

  • 问题内容: 代码是什么 在构造函数内部吗? 例如,这是我的课程的构造函数 它和超类有关吗? 问题答案: 它调用父类的构造函数

  • 问题内容: 众所周知,您可以使用类型参数在Java中创建一个通用类: 但是,您也可以使用泛型 构造函数 ,这意味着显式接收其自己的泛型类型参数的构造函数,例如: 我正在努力了解用例。这个功能让我做什么? 问题答案: 这个功能让我做什么? 它至少可以让您完成 三 件事,而这 三 件事是您无法做到的: 表达参数类型之间的关系,例如: } <撤回> 正如@Lino首先观察到的那样,它使您可以表达参数必须

  • 我知道这个问题被问了很多次,但仍然不清楚。很多人刚才说, 如果您想访问,请将道具传递给构造函数 答案的另一个例子 Oficial doc说类组件应该始终使用props调用基构造函数,但如果我们不将传递给,我们仍然会将放在除构造函数之外的所有地方。 同样从react源代码中,我们可以看到react.Component 但这更让我困惑应使用两个参数调用:和。但是我们调用了super-empty,仍然可

  • 问题内容: 我见过两者可以互换使用。 两者的主要用例是什么?有优点/缺点吗?是更好的做法吗? 问题答案: 这两种方法不可互换。使用ES6类时,应在构造函数中初始化状态,并使用时定义方法。 请参阅有关ES6类的官方React文档。 相当于