Sử dụng false
, null
hoặc undefined
.
đoạn này cho thấy hành vi của render giá trị falsy trong Phản ứng:
<meta charset="UTF-8">
<script src="https://fb.me/react-0.13.2.js"></script>
<script src="https://fb.me/JSXTransformer-0.13.2.js"></script>
<div id="app"></div>
<script type="text/jsx;harmony=true">void function() { "use strict";
var falsyValues = [false, 0, "" , null, undefined, NaN]
var App = React.createClass({
componentDidMount() {
[].slice.call(React.findDOMNode(this).childNodes)
.forEach(child => console.log(child.outerHTML))
},
render() {
return <div>
{falsyValues.map(falsy => <div id={'test-' + falsy}>
Before
{falsy}
After
</div>)}
</div>
}
})
React.render(<App/>, document.getElementById('app'))
}()</script>
false
, null
và undefined
không tạo ra bất cứ điều gì:
<div id="test-false" data-reactid=".0.0"><span data-reactid=".0.0.0">Before</span><span data-reactid=".0.0.2">After</span></div>
<div id="test-null" data-reactid=".0.3"><span data-reactid=".0.3.0">Before</span><span data-reactid=".0.3.2">After</span></div>
<div id="test-undefined" data-reactid=".0.4"><span data-reactid=".0.4.0">Before</span><span data-reactid=".0.4.2">After</span></div>
Trong khi ''
, 0
và NaN
làm:
<div id="test-0" data-reactid=".0.1"><span data-reactid=".0.1.0">Before</span><span data-reactid=".0.1.1">0</span><span data-reactid=".0.1.2">After</span></div>
<div id="test-" data-reactid=".0.2"><span data-reactid=".0.2.0">Before</span><span data-reactid=".0.2.1"></span><span data-reactid=".0.2.2">After</span></div>
<div id="test-NaN" data-reactid=".0.5"><span data-reactid=".0.5.0">Before</span><span data-reactid=".0.5.1">NaN</span><span data-reactid=".0.5.2">After</span></div>
Để thuận tiện. bạn có điều kiện có thể tạo ra nội tuyến nội dung nếu các giá trị mà bạn đang thử nghiệm chống lại sẽ false
, null
hoặc undefined
khi nội dung có điều kiện không được hiển thị:
<div>
...
{this.props.checkbox && <span className='checkbox'></span>}
...
</div>
Nguồn
2015-05-07 10:36:56
Bump: mỗi phản ứng v.15, chuỗi không còn quấn trong '' s. Nó vẫn tốt hơn để trở lại giả hơn là trả về một chuỗi rỗng? – jguffey
trong v15, thay vì ' ', phản ứng chèn các nút nhận xét, ví dụ: '', có thể hữu ích để gỡ lỗi nếu cần – Aprillion