react demo8 (設定元件自身屬性this.props.children)
阿新 • • 發佈:2019-02-03
需求:定義一個列表元件,列表項中顯示的內容,以及列表項的數量都由外部決定
學習:設定元件自身屬性this.props.children
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>react dome</title>
<script src="./build/react.js"></script>
<script src="./build/react-dom.js"></script >
<script src="./build/browser.min.js"></script>
</head>
<body>
<div id="container"></div>
<script type="text/babel">
/*
this.props.children
childen是一個例外,不是跟元件的屬性對應的。
表示元件的所有節點
HTML5中有一種標籤:列表<ul><li>
需求:定義一個列表元件,列表項中顯示的內容,以及列表項的數量都由外部決定
*/
//建立元件
var ListComponet = React.createClass({
render:function(){
return (
<ul>
{
/*
列表項數量及內容不確定,在建立模板時才能確定
利用this.props.children從父元件獲取需要展示的列表項內容
獲取到列表項內容後,需要遍歷children,逐項進行設定
使用react.children.map方法
返回值:陣列物件,這裡陣列中的元素是<li >
*/
React.Children.map(this.props.children,function(child){
//child是遍歷得到的父元件中的子節點
return <li>{child}</li>;
})
}
</ul>
)
}
})
//渲染
ReactDOM.render(
(
<ListComponet>
<a>我是有一條新聞111。。。。</a>
<a>我是有一條新聞2222222222。。。。</a>
<a>我是有一條新聞333333。。。。。。</a>
<a>我是有一條新聞4444444。。。。</a>
<a>我是有一條新聞55555555。。。。</a>
</ListComponet>
),
document.getElementById("container")
)
</script>
</body>
</html>
效果圖顯示: