React ES6 类组件中的构造函数
React ES6 class constructor super() 】
学 Reactjs101 时发现自己能看懂参看文章 React ES6 class constructor super() 。所以就翻译过来了
当你用 ES6 语法 class 写 React 像这样:
1 |
|
或许会有两个疑问:
- 必须在 constructor 中加入 super() 吗?
super()
和super(props)
之间有事吗不同?
Answer 1
有
constructor
就需要super()
如果你有个构造函数 constructor
就 必须要有 super()
。看看下面的例子:
1 |
|
上面的代码是完全有效的。你不需要在你所有创建的组件中加入super()
。然而,如果你代码中有构造函数,那你必须调用 super()
:
1 |
|
因为在没有调用 super()
之前this
未初始化,这就是为什么 this
不能在 super()
之前。
你或许想你能创建一个不调用 super()
的空构造函数:
1 |
|
ES6 class constructors 必须调用 super
如果是子类。因此,你必须调用 super()
只要你有一个构造函数。(但子类不需要有构造函数)。
Answer 2
只有你想把
this.props
写在构造函数中才需要调用super(props)
:
1 |
|
修改为:
1 |
|
如果你想在其他地方使用它,没有必要设置props
到构造函数中。因为 React 会自动为你设置
1 |
|
React ES6 类组件中的构造函数
https://bubao.github.io/posts/8ddcab73.html