如何根据条件渲染 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>
)