美文网首页
JSX中的Booleans, Null, undefined值

JSX中的Booleans, Null, undefined值

作者: JamesSawyer | 来源:发表于2018-08-06 17:31 被阅读4次

false, null, undefined, true都是有效的children(子元素)。但是并不会被渲染出来,下面JSX表达式渲染效果是等效的:

<div />

// 下面表达式等同于最上面的表达式
<div></div>
<div>{false}</div>
<div>{null}</div>
<div>{undefined}</div>
<div>{true}</div>

一般条件渲染中会用到这个,比如 showHeadertrue 时, <Header /> 会被渲染:

<div>
  {showHeader && <Header />}
  <Content />
</div>

但是需要注意的是,为0 这种falsy值时,React仍然会被渲染。 例如,下面的做法可能和你期望的会不一致:

<div>
  {props.messages.length && <MessageList  messages={props.messages} />}
</div>

可以使用下面方式修复这个问题:

<div>
  {props.messages.length > 0 && <MessageList  messages={props.messages} />}
</div>

为了显示上面的 null, true | false, undefined 等值, 可以使用 String 方法将其转换为字符串类型

<div>
  My JavaScript variable is {String(myVariable)}.
</div>

来源:

相关文章

网友评论

      本文标题:JSX中的Booleans, Null, undefined值

      本文链接:https://www.haomeiwen.com/subject/sfmgvftx.html