reactjs - 在三元运算符语句中值始终为空
问题描述
我正在为一个在线游戏网站使用 ReactJS 和一个名为 React-Table 的库。
在表中,我有一个可能为空或 NULL 的列单元格。
因此,如果该列单元格为空、空或未定义,那么我想显示一个名为“Dungeon Master”的值。
如果它不为 null 或为空,那么我只想显示应该显示的内容(row.original.gamerTag)。
所以我尝试使用三元运算符进行检查,但无论如何,该值始终显示为空。
这是我使用它的地方:
{
Header: 'Gamer Title',
accessor: 'gamerTitle',
Cell: ({ row }) =>
<a href="#" onClick={() =>
show(
row.original.id,
row.original.gamerTitle,
row.original.gameType,
(row.original.gamerTag == 'undefined' || '' || null) ? 'Dungeon Master' : row.original.gamerTag,
row.original.gameDescription,
)}>
{row.original.gamerTitle}
</a>
},
我用错了吗?我没有收到任何错误或任何东西。
谢谢!
解决方案
代替
(row.original.gamerTag == 'undefined' || '' || null) ? 'Dungeon Master' : row.original.gamerTag
经过
typeof row.original.gamerTag === 'undefined' || row.original.gamerTag === '' || row.original.gamerTag === null ? 'Dungeon Master' : row.original.gamerTag
两个问题,一个是 myVar == 'undefined' 不起作用,因为您比较的是字符串而不是类型。其次,在 js 中,concat 条件的语法并不短。或者,您可以尝试 [undefined, null, ''].includes(row.original.gamerTag)。
推荐阅读
- visual-studio-code - vscode 生成大型配置文件
- django - Django ORM(Django 2.X)中“FilteredRelation()”对象的用途是什么?
- javascript - 使用 puppeter 在新选项卡中打开页面
- python - Python 2.7 Unittest 检查是否记录了警告
- java - 调用 void 方法的 CompletableFuture.runAsync() 的 Mockito 测试用例
- html - Angular中的排序下拉列表不区分大小写
- grails - 从微服务中获取数据以存放在 grails 中
- javascript - selenium 运行测试时如何显示 Snackbar?
- android - 从谷歌云打印 API 打印时设置纸张尺寸 A4
- bash - 如何在 BASH 中将 1-26 翻译成 az?