super(props)
时间: 2023-06-23 12:01:15 浏览: 85
这是在 React 中用于在子类 constructor 中调用父类 constructor 的语法。它的作用是继承父组件的属性和方法。在使用 ES6 class 定义组件时,如果需要在子类的 constructor 中访问 this.props,就必须在 constructor 中调用 super(props)。
相关问题
react 中 super() 和 super(props)的区别
在 React 中,`super()`和`super(props)`都用于调用父类的构造函数。但是,它们之间有一些区别。
当你使用`super()`时,它会将`this`传递给父类的构造函数,并且在构造函数中你不能访问`this.props`。这意味着,如果你需要在构造函数中访问`this.props`,那么你需要使用`super(props)`。
当你使用`super(props)`时,它会将`this`和`props`都传递给父类的构造函数,并且父类的构造函数可以通过`this.props`访问传递进来的`props`属性。
因此,如果你需要在构造函数中访问`props`属性,那么你应该使用`super(props)`。否则,如果你不需要在构造函数中访问`props`属性,那么你可以使用`super()`。
Implicit super constructor Props() is undefined. Must explicitly invoke another constructor
这个错误通常发生在子类继承父类时,子类没有调用合适的父类构造函数。在Java中,如果一个类没有显式地调用父类的构造函数,Java编译器会默认调用父类没有参数的构造函数。但是,如果父类没有没有参数的构造函数,那么子类必须显式地调用父类构造函数。
解决这个错误的方法是在子类的构造函数中添加一个super()调用,以调用父类的构造函数。如果父类有参数的构造函数,则需要在super()中传递相应的参数。
例如:
```
public class Parent {
public Parent(String name) {
// constructor code
}
}
public class Child extends Parent {
public Child(String name) {
super(name); // call parent constructor with name parameter
// constructor code
}
}
```
在这个例子中,子类Child显式地调用了父类构造函数,并传递了相应的参数。这样就避免了这个错误。
阅读全文