如何根据条件渲染 JSX?
How do I render JSX based on a condition?
我如何添加如下内容:
if(true) <Reminder /> else <div>hehe</div>
普通方式?我知道,我可以使用 <Reminder />
和不使用 <Reminder />
创建两个 return
语句,但我不想重复代码。
这是我目前的情况:
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
您可以使用 ternary operator:
{condition ?
<div>I will render when condition is true!</div>
:
<div>I will render when condition is false!</div>
}
这将使用内联 JSX 表达式根据 condition
有条件地呈现 JSX。例如:
return (
<ListGroupItem key={reminder.id}>
<div>{reminder.text}</div>
{true ?
<Reminder dueDate={reminder.dueDate} />
:
<div>Hehe!</div>
}
</ListGroupItem>
)
我如何添加如下内容:
if(true) <Reminder /> else <div>hehe</div>
普通方式?我知道,我可以使用 <Reminder />
和不使用 <Reminder />
创建两个 return
语句,但我不想重复代码。
这是我目前的情况:
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
您可以使用 ternary operator:
{condition ?
<div>I will render when condition is true!</div>
:
<div>I will render when condition is false!</div>
}
这将使用内联 JSX 表达式根据 condition
有条件地呈现 JSX。例如:
return (
<ListGroupItem key={reminder.id}>
<div>{reminder.text}</div>
{true ?
<Reminder dueDate={reminder.dueDate} />
:
<div>Hehe!</div>
}
</ListGroupItem>
)