Reactjs 条件渲染反应问题(循环)

Reactjs 条件渲染反应问题(循环),reactjs,Reactjs,我试图使用forEach或map函数,但没有成功(hadxxx不是一个函数错误)。决定使用良好的旧for循环,但我的程序只渲染一个div元素,而不是创建多个div元素 简化示例: getTest(){ const l = this.props.renderedDrugs.length; for(var i = 0; i < l; i++){ return <div>{this.props.renderedDrugs[i].id}</div

我试图使用forEach或map函数,但没有成功(hadxxx不是一个函数错误)。决定使用良好的旧for循环,但我的程序只渲染一个div元素,而不是创建多个div元素

简化示例:

getTest(){
    const l = this.props.renderedDrugs.length;

    for(var i = 0; i < l; i++){
        return <div>{this.props.renderedDrugs[i].id}</div>
    }
}

render() {

    const test = (this.props.renderedDrugs) ? this.getTest() : nope()

    function nope(){
        return 'nope'
    }
    return (
        <div>{test}</div>
    )
}
}
getTest(){
const l=this.props.renderDrugs.length;
对于(变量i=0;i

不管我做什么,我都不能返回多个div,但是多个控制台日志没有问题。我是否因为像个白痴一样盯着屏幕而完全忘记了一些基本反应功能中的关键内容?

您确实想要
map

getTest() {
    return this.props.renderedDrugs.map(rd => <div>{rd.id}</div>)
}

我很想使用地图,尽管我一直得到“this.props.renderdrugs.map不是函数”,并且无法解决这个问题,然后
this.props.renderdrugs
不是数组。@MazMat编辑了一个答案,告诉你如何从
for
循环中构建数组。这对我很有用,谢谢,我完全忘记了你不能通过对象进行地图绘制
getTest(){
    const l = this.props.renderedDrugs.length;
    const ary = [];

    for(var i = 0; i < l; i++){
        ary.push(<div>{this.props.renderedDrugs[i].id}</div>);
    }
    return ary;
}