使用map()将props传递给child,在第二次渲染时返回undefined

时间:2016-12-22 15:57:13

标签: reactjs

我正在尝试使用map函数呈现列表来创建列表组件数组。我从外部JS文件传递items prop。请注意我正在记录typeof(this.props.title)

//THE CHILD -- RENDERS THE LI TAG
a = React.createClass({
    propTypes: {
        title: React.PropTypes.string.isRequired,
        onSelected: React.PropTypes.func.isRequired 
    },
    render: function() {
        console.log(typeof(this.props.title));
        return React.createElement("li", {className:"filter_li"))
    }
}),

//THE PARENT
s = React.createClass({
    propTypes: {
        items: React.PropTypes.array.isRequired
    },
    render: function() {
        var h, c, o;
        return h = {
            className: "filter_ul"
        },
        React.createElement("ul",Object.assign({},h),
            this.props.items.map(function(e,index) {
            var p = {
                key: index,
                title: e.title,
                onSelected: this._onItemSelected
            };
            return React.createElement(a, p)
        },this))
    },
    _onItemSelected: function() {
        console.log("Selected")
    }
}),
module.exports = s

当我运行它时,日志的'string'按预期打印了10次(有10个列表项)但是之后'undefined'打印了6次 - 为什么会发生这种情况?

0 个答案:

没有答案