【发布时间】:2019-12-17 11:34:07
【问题描述】:
我有 React 组件,它使用 axios 从 MySQL 调用数据并渲染它。问题是,如果我想显示消息,如果我没有任何数据。我的代码如下所示。
render() {
return (
<div>
{this.state.elements.length < 1 ? (
<p>Elements doesn't exist</p>
) : (
<ul>
{ this.state.elements.map(element => <li key={element.id}>{element.name}</li>)}
</ul>
)}
</div>
);
}
此代码有效,但在渲染列表之前显示错误半秒。我知道问题是延迟向 MySL 请求并调用数据,但我该如何避免呢?
【问题讨论】:
-
我猜你可以为请求设置标志。例如,在初始状态下,您将“初始化”字段设置为 false。在请求之后,您可以 setState 并将其更新为 true。在渲染方法中,您还需要更新条件以在初始化为 false 时显示微调器或其他内容,因此如果请求未完成,您将看不到“元素不存在”消息。
标签: javascript mysql ajax reactjs axios