我在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。