JSX обертка div в теге <a>, если URL существует - PullRequest
0 голосов
/ 06 января 2019

Я пытаюсь обернуть теги вокруг элемента (значок SVG), если URL-адрес добавлен. У меня есть:

<Fragment>

  { url && (
    <a href={ url }>
  ) }

      <FontAwesomeIcon icon={ myIcon } />

  { url && (
    </a>
  ) }

</Fragment>

Я продолжаю получать Syntax error: Unexpected token (170:7) за </a>. Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 06 января 2019

"Что я делаю не так?" Вы думаете о JSX как HTML-строки. Это не. JSX - это расширение синтаксиса javascript для упрощения вызовов React.createElement.

Вы можете извлечь внутреннюю часть в переменную и использовать тернарный оператор для ее условного переноса

const icon = <FontAwesomeIcon icon={ myIcon } />

return (url ? <a href={url}>{icon}</a> : icon)
0 голосов
/ 06 января 2019

JSX анализирует ваш тег </a> как недопустимый синтаксис, поэтому вам нужно использовать другой способ:

<Fragment>

  { url? (
    <a href={ url }>
      <FontAwesomeIcon icon={ myIcon } />
    </a>
  ) : (
    <FontAwesomeIcon icon={ myIcon } />
  )}

</Fragment>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...