在构造函数中获取数据

Mic*_*l94 5 javascript reactjs

在javascript类中获取数据是一种好习惯constructor()吗?

例如在react类中constructor(),我找到的每个教程都在其中提取数据componendDidMount(),但是没有人解释为什么我们不能在其中提取数据constructor()

问题不仅涉及javascript类react

Que*_*n C 7

在安装组件之前会调用构造函数(如#constructor doc中的此处所述:https ://reactjs.org/docs/react-component.html )。

为了回答您的问题,解释在于React组件的生命周期以及在状态更改时需要重绘的需求。通过在构造函数中进行异步调用,可以在安装组件之前触发setState。

如果在构造函数中调用setState,则在构造函数中进行异步调用会导致重新渲染,并且有时组件不会重新渲染。

从文档:

您不应在构造函数()中调用setState()。相反,如果您的组件需要使用本地状态,请直接在构造函数中将初始状态分配给this.state:

避免在构造函数中引入任何副作用或订阅。对于这些用例,请改用componentDidMount()。