【发布时间】:2019-06-09 18:32:24
【问题描述】:
我在 componentDidMount 中获取数据,但我在初始渲染期间未定义,并且再次渲染发生,并且在此期间状态变量被填充。现在,当它不是未定义的并且在填充之后我想解构它并在我的组件中显示数据。
注意:getProjectDetails() 生成一个 GET 请求来填充数据。
我收到未定义的类型错误名称。
constructor(props) {
super(props);
this.state = {
projectDetails: ''
};
}
componentDidMount() {
getProjectDetails(this.props.logged_in_user, this.props.projectId)
.then( res => {
this.setState({projectDetails: res});
})
.catch(err => {
console.log('Error: ' + err);
})
}
//Inside render()
render() {
console.log('Project details from API endpoint: ', this.state.projectDetails.project)
const { projectDetails } = this.state;
console.log('Destructure: ', projectDetails);
const project = this.state.projectDetails.project;
let {
name,
location,
city,
builder_name } = project;
【问题讨论】:
-
您可以尝试在 componentWillMount 方法中设置 Async 函数调用,这样可能会更好。
-
我使用了 componentWillMount 但仍然遇到同样的错误
-
你的初始状态没有对象项目。
标签: javascript reactjs