reactjs - 在接收到 REST 端点数据之前执行下一步并且无法呈现状态属性
问题描述
在我的 React js 应用程序中,我使用了一个响应时间较长的端点,有时也需要 1.5 秒(因为它从 Big Query 获取数据)。所以下一步执行,最后它无法获得价值并且什么也不渲染。但是在收到响应后,我可以在浏览器的控制台中找到可用的值。
细节:
axios.get(url)
.then(function(response) {
this.setState({ listusers: response.data });
})
.catch(function(error) {
console.error(error);
});
在渲染方法中:
{this.state.listusers.length ? (
this.state.listusers.map(
element => "Time Stamp: " + element.Timestamp + " - MacAddress: " +
element.MacAddress +" - DeviceID: " + element.DeviceID
) ) : ( <p>No Data</p> )}
即使使用 setTimeout 也无法渲染。
有什么出路吗?
谢谢。
解决方案
你应该从 map 表达式中返回一个 DOM,比如说:
this.state.listusers.map(
element => element ? <p> "foo"+element.bar+"other..." </p> : <p> no data </p>
)
因为你只是在构造一个字符串,而不是返回任何要渲染的东西,
还要检查你的三元条件运算符语法,我猜不是你的意思
推荐阅读
- vue.js - 如何在开发模式下运行 npm-watch?
- python - 我想从 fasta 文件中解析序列和序列 ID,并将它们分配给 Dataframe。我正在使用来自 biopython 的 SeqIO 库
- java - 更改 Java 基础映像注意事项
- python - 如何使用我将其命名为 Features.py 的其他 python 文件中的函数我想在 main.py 的类中使用该函数
- node.js - 当我们将 pdf 内容保存到 db 时,pdf2json 在 node.js 中显示错误
- java - VOSK 空文本输出?(Java)
- outlook - 确定 Exchange Server 是否完全支持 REST API 的最有效方法是什么?
- r-markdown - 如何在 kable table R markdown 中使单个单元格变为粗体?
- python - 如何使用pyodbc提交存储过程执行?
- c++ - 行为异常的 getline() 函数,无法接受输入