React:JSX 中的三元运算产生 "Unexpected token" 错误

React: Ternary operation in JSX produces "Unexpected token" error

我试图在开始显示之前检查数组是否不为空。这是我的代码:

{ item2.user.entities.url !== null 
              ? ({item2.user.entities.url.urls.map((item3,index3) => {
                    return(
                        <a href={item3.expanded_url} target='_blank'>{item3.expanded_url}</a>
                      )
                    })
                  })
              : null
            }

我不确定。显示错误

babel.min.js:8 Uncaught SyntaxError: Inline Babel script: Unexpected token, expected , (187:23) 
  186 |           { item2.user.entities.url !== null 
> 187 |               ? ({item2.user.entities.url.urls.map((item3,index3) => {
      |                        ^
  188 |                     return(
  189 |                         <a href={item3.expanded_url} target='_blank'>{item3.expanded_url}</a>
  190 |                       )
    at t.le.raise (babel.min.js:8)
    at t.Z.unexpected (babel.min.js:7)
    at t.Z.expect (babel.min.js:7)
    at t.se.parseObj (babel.min.js:8)
    at t.se.parseExprAtom (babel.min.js:8)
    at t.parseExprAtom (babel.min.js:9)
    at t.se.parseExprSubscripts (babel.min.js:8)
    at t.se.parseMaybeUnary (babel.min.js:7)
    at t.se.parseExprOps (babel.min.js:7)
    at t.se.parseMaybeConditional (babel.min.js:7)

无法理解错误是什么

你有额外的{}

const a = item2 => {
  item2.user.entities.url !== null
    ? item2.user.entities.url.urls.map((item3, index3) => {
        return (
          <a href={item3.expanded_url} target="_blank">
            {item3.expanded_url}
          </a>
        );
      })
    : null;
};

不能在另一个 JSX 表达式中包含 JSX 表达式 ({})。

你需要用一个像 <div>:

这样的元素来包装你的第二个 JSX 表达式
{item2.user.entities.url !== null ? (
    <div>
        {item2.user.entities.url.urls.map((item3, index3) => (
            <a href={item3.expanded_url} target='_blank'> 
                {item3.expanded_url}
            </a>
        )}
    </div>
 ) : null}

或者将其设为单个表达式:

{item2.user.entities.url !== null ? item2.user.entities.url.urls.map((item3, index3) => (
    <a href={item3.expanded_url} target='_blank'> 
        {item3.expanded_url}
    </a>
 ) : null}