javascript - (React/Redux) JSX 三元回退不起作用
问题描述
我得到了一组处于状态的用户,起初是空的:
const initialState = {
users: [],
loading: false,
}
在第一次挂载时,我从端点(使用useEffect
)获取用户,然后渲染它们。
我想要一个“加载用户..”作为加载时间的后备,但它不起作用。
JSX 声明:
{usersFromState ? (
<div className='usersContainer'>
{usersFromState.map((user, i) => (
<div className='messageBox' key={i}>
user : {user.email}
</div>
))}
</div>
) : (
<div className='loading'> Loading Users... </div>
)}
我错过了什么?
解决方案
数组 - 即使是空的 - 仍然是真实值,因此“正在加载”的div 实际上从未呈现。
例如,您可以检查用户数组的长度。
{usersFromState.length > 0 ? ( ... ) : ( ... )}
推荐阅读
- c# - WebClient 未遵循 .Net Core 3.1 中的重定向
- javascript - ajax 向 PHP 提交错误的数据
- python-3.x - Qt:在包含子布局的 QFormLayout 中显示或隐藏行
- java - 如何使用 spring-data 检索 mongodb 集合?
- django - 使用 PyCharm 创建 Django 项目时出错
- javascript - 无法在反应组件中使用 postMessage
- azure-functions - 如何编写一个 CosmosDBTrigger 来更新已更改的同一文档?
- python - 编写代码对多个 pandas DataFrames 执行相同的操作
- python - 发送嵌入 discord.py 后收听反应或消息
- javascript - 我想要一个按钮单击以将 html 标记添加到我的表单