首页 > 解决方案 > 在三元运算符语句中值始终为空

问题描述

我正在为一个在线游戏网站使用 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>
},

我用错了吗?我没有收到任何错误或任何东西。

谢谢!

标签: reactjsecmascript-6conditional-operatorreact-table

解决方案


代替

(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)。


推荐阅读