我想测试渲染列表组件从一个JSON对象调用与提取,但是我怀疑渲染是在JSON返回之前调用,因为我得到一个未定义的错误。注意debug alert()获取值,但渲染在undefined时已经出错。我该如何处理?数据获取后有没有办法调用渲染函数?或者我可以如何获得数据以'?'呈现然后在数据到达时更新?请注意我的if(!object)doesn; t作为内联包装函数调用 - 为什么不 - 或者更不重要的是如何执行此操作?对于begginer问题抱歉 - 我怀疑我打算使用数据框架来为显示反应提供数据,但我想用较少的框架开始学习并获得基础知识。非常感谢! - 代码:react.js的初学者 - 从稍后更新状态的渲染组件
import React, { Component } from 'react';
import logo from './logo.svg';
import './App.css';
class ItemLister extends React.Component {
constructor(props) {
super(props);
this.state = { items: [] };
}
componentDidMount() {
let url = "http://localhost:8888";
let iterator = fetch(url, {method: 'GET'});
iterator
.then(response => {
//console.log('sss', response)
return response.json();
})
.then(post => {
//console.log(post)
this.state.items = post;
alert(this.state.items.users[3].firstname);
});
}
output(object){
if (!object){
return '?';
}else{
return object;
}
}
render() {
return(
<div>
<div>Items:</div>
<div>{this.output(this.state.items.users[3].firstname)}</div>
</div>
);
}
}
export default ItemLister;
是的,这是React或其他此类框架的基本内容。当没有数据和状态发生变化时,您将呈现一个占位符/加载/无论什么时候组件将再次呈现并且您将呈现实际数据。它不工作的原因是因为你试图访问'this.state.items.users ...'并且它不存在,所以它甚至不能访问该函数。 –