在看react教程的时候,突然看到下面这段话:
在有条件性渲染 React 元素时非常有用。如果 showHeader 为 true 时,
会被渲染:
|
|
需要注意的是“falsy”值,例如数值 0 ,仍然会被 React 渲染。例如,这段代码不会按照你预期的发生,因为当 props.messages 是一个空数组时 0 会被打印:
12345 <div>{props.messages.length &&<MessageList messages={props.messages} />}</div>
引自:react中文
第一次看到truthy和falsy的说法。随机去查了下truthy和falsy。
JavaScript中存在Truthy值和Falsy值的概念 — 除了boolean值true、false外,所有类型的JavaScript值均可用于逻辑判断,其规则如下:
- Falsy值,当进行逻辑判断时均为false(如!!false==false)。六个Falsy值:false、undefined、null、正负0、NaN、””。
- 其余所有的值均为Truthy,当进行逻辑判断时均为true(如!![]==true)。Infinity、空数组、”0″都是Truthy值。
也就是说false是属于falsy的,任何
真是学无止境,之前在做react项目的时候,会碰到用0去判断,就会出现明明是0,按理说应该是false的条件,但是还是渲染出来了,现在知道了,原来0是falsy,和false还是有区别的,而且react遇到falsy还是可以渲染的,一定要是false才可以。