Реагировать на необнаруженный токен на условную HTML-ссылку

#reactjs

#reactjs

Вопрос:

В react я пытаюсь отобразить ссылку, если она существует, как эта…

 {link
    ? <a href={link}>
    : 
}

    <h2>Link Content </h2>

{link
    ? </a>
    : 
}
 

Но когда я пытаюсь его собрать, я получаю сообщение…

 Unexpected token ? </a>
 

Кто-нибудь знает, где я ошибаюсь?

Комментарии:

1. Попробуйте ссылку amp;amp; <a href={link}> или ссылку? <a href={link}>: null

Ответ №1:

Если вы используете троичный, вам нужно иметь что-то справа от : возвращаемого, когда ваш случай false . Более простым способом было бы использовать amp;amp; в этой ситуации —

 {link amp;amp; <a href={link}>}
  <h2>Link Content </h2>
{link amp;amp; </a>}
 

Который обернет ваш h2 a тег только тогда, когда ссылка существует.

Если вы действительно хотите использовать троичный, вы можете сделать следующее:

 {link ? (
  <a href={link}>
    <h2>Link Content</h2>
  </a>
) : <h2>Link Content</h2>}
 

Ответ №2:

Потому что ваш синтаксис неправильный.Пример:

 render () {
 return (
    <div className="row">
      { //Check if message failed
        (this.state.message === 'failed')
          ? <div> Something went wrong </div> 
          : <div> Everything in the world is fine </div> 
      }
    </div>
  );
}