1. 程式人生 > >react demo8 (設定元件自身屬性this.props.children)

react demo8 (設定元件自身屬性this.props.children)

需求:定義一個列表元件,列表項中顯示的內容,以及列表項的數量都由外部決定
學習:設定元件自身屬性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>

效果圖顯示:
這裡寫圖片描述