React - 组件不会在foreach循环中呈现?

Ska*_*ude 6 typescript reactjs react-router

当你打开一个标签时,我有一个小应用程序,React Route重定向到给定的组件(容器).从容器我想渲染子组件.我使用foreach循环遍历一个列表,其中包含需要给孩子的道具.但是,孩子不会被渲染.

我不想使用map,因为我使用依赖于列表类的库.

render() {   
    return ( 
        <div>
            {this.state.list.ForEach((element) => 
                <ChildComponent childName={element.name} 
        }
        </div> 
    );
}
Run Code Online (Sandbox Code Playgroud)

}

Sul*_*han 21

您将Array.forEachArray.map混淆.forEach没有任何回报.正确的方法是:

<div>
    {this.state.list.map((element, index) => 
        <ChildComponent key={index} childName={element.name} />
    )}
</div> 
Run Code Online (Sandbox Code Playgroud)

map将给定element转换为另一个元素,在这种情况下是一个组件.调用的结果map是随后呈现的组件数组.forEach总是返回,undefined因此代码的结果与写入相同:

<div>
   {undefined}
</div>
Run Code Online (Sandbox Code Playgroud)

请注意,key在渲染组件列表时也是必需的.

  • 谢谢你。你是救命稻草。我真的很挣扎。 (2认同)