我在componentDidMount()中调用了以下库,它成功返回了一个对象。

  componentDidMount() {
      var objData =call.MyLibStart('12121', this);
}


现在,我需要在objData部分中使用render()。我还需要访问objData的某些属性,例如objData.

 render() {
//I need the object.postate here
}


如何在那里访问对象?在这里使用国家是个好主意吗?

最佳答案

您可以像@ 3Dos的答案一样访问对象。如果要修改objData的值,则将其用作状态。如果只想渲染该对象或获取该值以检查某物,则使用class属性就足够了。

确保以正确的方式获取对象:

componentWillMount () {
  this.objData = Object.assign({}, call.MyLibStart('12121', this))
  console.log('objData: ', this.objData) // inspect the object in debugger to check it's keys
}


componentDidMount的原因是它仅在render函数之后运行。您的应用程序流程如下:


constructor()中:this.objData = null
render()中:this.objData = null
componentDidMount()中:this.objData = some object


目前,渲染功能将不会更新,因为只有在您对状态进行了一些更改后,渲染功能才会更新。由于this.objData不是状态,因此在render中它将始终为null。因此,通过将componentDidMount更改为componentWillMount,当调用objData时,您的render不会为null。

10-08 13:42