Как мне отрендерить 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>
)