三元运算符语句中的值始终为空

value is always empty inside ternary operator statement

我正在为一个在线游戏网站使用 ReactJS 和一个名为 React-Table 的库。

在 table 中,我有一个可能为空或 NULL 的列单元格。

因此,如果该列单元格为 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

与:

(row.original.gamerTag == 'undefined' || row.original.gamerTag == '' || row.original.gamerTag == null) ? 'Dungeon Master' : row.original.gamerTag

替换

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