在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML/ React使用map方法的時(shí)候遇到個(gè)奇怪的問(wèn)題,請(qǐng)求高手知道

React使用map方法的時(shí)候遇到個(gè)奇怪的問(wèn)題,請(qǐng)求高手知道

class BlackBorderContainer extends React.Component {
        render(){
            console.log(this.props.children[0].props); //object
            this.props.children.map((val,i)=>{
                console.log(val);
                return <div key={i} className="black-board">{val.type}</div>
            })
        }
    }
    ReactDOM.render(
        <BlackBorderContainer>
            <div className='name'>My Name:Lucy</div>
            <p className='age'> My Age:<span>12</span></p>
        </BlackBorderContainer>,
        document.getElementById('example')
    )

我2個(gè)console打印出來(lái)的內(nèi)容 可以看出有三個(gè)對(duì)象,那我這里{val.type}為什么還是錯(cuò)誤的?
難道說(shuō)是因?yàn)?code><BlackBorderContainer>組件內(nèi)部的不對(duì)稱,一個(gè)是div一個(gè)是p的緣故?
{className: "name", children: "My Name:Lucy"}
{$$typeof: Symbol(react.element), type: "div", key: null, ref: null, props: {…},?…}
{$$typeof: Symbol(react.element), type: "p", key: null, ref: null, props: {…},?…}
從中可以看出我最后return的時(shí)候 val是正確輸出的,但是程序會(huì)報(bào)錯(cuò)
Uncaught Error: BlackBorderContainer.render(): A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.

回答
編輯回答
瘋子范

樓上說(shuō)的對(duì)呢~

改成這樣就好了

        render(){
            console.log(this.props.children[0].props); //object
            return this.props.children.map((val,i)=>{
                        console.log(val);
                        return <div key={i} className="black-board">{val.type}</div>
                   })
        }

可以直接返回?cái)?shù)組不用加Fragment
https://reactjs.org/blog/2017...

2017年5月30日 12:44
編輯回答
離夢(mèng)

看字面意思也是你的render函數(shù)沒有返回值呀。
你的return是map的。

2017年10月13日 10:26