reactjs - 使用 react.js 在 switch case 中返回多个值
问题描述
我正在使用 switch case 根据 case 值呈现文本。除了文字,我还想添加一个图标。因此,对于特定情况,会有一个图标,旁边会有一个适当的文本。
为了实现这一点,我在 case 条件的返回语句中添加了图标和文本。
case 'DENIED':
return <Square /> + intl.formatMessage(messages.processDenied);
case 'CANCELLED':
return <CloseIcon color='red' /> + intl.formatMessage(messages.processCancelled);
case 'INCOMPLETE':
return <HourglassIcon /> + intl.formatMessage(messages.processIncomplete);
default:
return intl.formatMessage(messages.processApproved);
}
当我使用上述逻辑时,我得到
它不显示图标,而是显示 [object,object]。我可以不使用“+”号连接两个元素吗?如果是这样,我如何在一次返回中返回两个元素?
解决方案
我可以不使用“+”号连接两个元素吗?
不,执行字符串连接。React 元素是一个对象,而不是字符串。对象的默认字符串表示[object Object]
就是您获得该输出的原因。
如果是这样,我如何在一次返回中返回两个元素?
要么使用片段,要么将两个元素放在另一个元素中:
// fragment
return <><Square /> {intl.formatMessage(messages.processDenied)}</>;
// children of another element
return <span><Square /> {intl.formatMessage(messages.processDenied)}</span>;
推荐阅读
- asp.net-mvc - 使用 emmet(ZenCoding) 和 Visual Studio for Mac(不是 VS Code)
- python-3.x - 当我使用列作为键合并数据框时,它会无限次重复其他列
- python - 我想帮助使用 if in 语句优化三重 for 循环
- playframework - 在播放框架中使用redis作为缓存时接收超时
- amazon-web-services - AWS CodeDeploy:卡在安装步骤
- python - 哪个小部件最适合创建动态选项卡?
- angular - 如何在 Angular 7 中设置超时 KeyUp
- http - 在 Indy POST 之后访问 JSON 数据
- azure - 如何检查 Azure SQL 数据库中特定用户的所有访问权限?
- excel - 循环检查总和,具体取决于具有未知条目的几列