在我的React js应用程序中,我消耗了一个端点,该端点花费了更长的时间来响应,有时还需要1.5秒(因为它从Big Query获取数据)。因此,执行下一步,最后它无法获取价值并且什么也不呈现。但是收到响应后,我可以在浏览器的控制台中找到可用的值。
详细信息:
axios.get(url)
.then(function(response) {
this.setState({ listusers: response.data });
})
.catch(function(error) {
console.error(error);
});
在render方法中:
{this.state.listusers.length ? (
this.state.listusers.map(
element => "Time Stamp: " + element.Timestamp + " - MacAddress: " +
element.MacAddress +" - DeviceID: " + element.DeviceID
) ) : ( <p>No Data</p> )}
即使使用setTimeout也无法呈现。
有没有出路?
谢谢。
答案 0 :(得分:0)
您应该从地图表达式返回DOM,例如:
this.state.listusers.map(
element => element ? <p> "foo"+element.bar+"other..." </p> : <p> no data </p>
)
因为您只构造一个String,而不返回任何要呈现的内容,
还要检查您的三元条件运算符语法,我想这不是您的意思