试图在React中映射数组,未定义

时间:2017-09-15 19:48:49

标签: javascript reactjs

下面是我的渲染的一部分,然后是它引用的组件。我得到“李未定义”。我已经尝试将它包装在{}中,并且此时不确定我缺少什么。谢谢你的帮助。

渲染部分:

var uls = _.chunk(_.take(this.state.results, maxICanShow), perColumn);

    return (
        <div>
        uls.map((lis) => {
            <ul className="appt_bd">
                <li className="appt_bd_header" style={{ width: colWidth + '%' }}>
                    <span className="appt_bd_header_main">{this.props.title}</span>
                    <span className="appt_bd_header_sub">Appts Set</span>
                    <span className="appt_bd_header_sub">Appts Show</span>
                </li>
                lis.map((li) => <AppointmentBoardRow key={li.userId} row={li} />)
            </ul>
        })
            </div>
    );

以下是它引用的组件:

var AppointmentBoardRow = React.createClass({
render: function () {
    var row = this.props.row;
    return (
        <li className="appt_bd_row" style={{ width: this.props.colWidth + '%' }} key={row.userId}>
            <span className="appt_bd_desc">
                <span className="appt_bd_rank">{row.rank}</span>
                <span className="appt_bd_avatar_container"><div className={row.className}><span className="initials">{row.initials}</span></div></span>
                <span className="appt_bd_user">
                    <span className="appt_bd_description_main">{row.userName}</span>
                    <span className="appt_bd_description_sub">{row.role}</span>
                </span>
            </span>
            <span className="appt_bd_data">
                <span className="appt_bd_data_main">{row.apptsSetCount}</span>
                <span className="appt_bd_data_sub">/{row.apptsSetGoal}</span>
            </span>
            <span className="appt_bd_data">
                <span className="appt_bd_data_main">{row.apptsShowCount}</span>
                <span className="appt_bd_data_sub">/{row.apptsShowGoal}</span>
            </span>
        </li>
    );
}

});

1 个答案:

答案 0 :(得分:0)

您的第一个代码段看起来有一些小的语法错误。具体来说,对child-route2的调用是html语法中的javascript,因此应该包含在{}中。这同样适用于uls.map

此外,lis.map是一个不返回任何内容的函数。您可能希望将其表示为uls.map((lis) => { <ul>...</ul> }uls.map((lis) => ( <ul>...</ul> )。如果问题仍然存在,您可能希望使用后者并设置调试器以确定传入的数据到底发生了什么。

我修复了上面提到的语法错误,希望这会有所帮助。

uls.map((lis) => { return (<ul>...</ul>) }