Как мне отрендерить JSX на основе условия?

Как я могу добавить что-то вроде:

if(true) <Reminder /> else <div>hehe</div>

Обычным способом? Я знаю, я могу создать два return заявления с <Reminder /> и без <Reminder />, но я не хочу повторять код.

Вот что у меня так далеко:

  renderReminders() {
    const { reminders } = this.props;
    return (
      <ListGroup>
        {
          reminders.map(reminder => {
            return (
              <ListGroupItem key={reminder.id}>
                <div>{reminder.text}</div>
                <Reminder dueDate={reminder.dueDate} />
              </ListGroupItem>
            )
          })
        }
      </ListGroup>
    ) // return 
  } // renderReminders

1 ответ

Решение

Вы можете использовать троичный оператор:

{condition ?
  <div>I will render when condition is true!</div>
    :
  <div>I will render when condition is false!</div>
}

Это будет использовать встроенное выражение JSX для условного рендеринга JSX на основе condition, Например:

return (
  <ListGroupItem key={reminder.id}>
    <div>{reminder.text}</div>
    {true ? 
      <Reminder dueDate={reminder.dueDate} />
        :
      <div>Hehe!</div>
    }
  </ListGroupItem>
)
Другие вопросы по тегам