我有一组反应组件的引用。我该如何渲染它们?
myArray = [Component1, Component2, Component3];
我正在寻找渲染函数,当给定数组时,它会渲染:
<div>
<Component1 />
<Component2 />
<Component3 />
</div>
答案 0 :(得分:2)
您可以迭代遍历数组的每个元素,其中每个元素都是组件并将其呈现为JSX元素。
像这样,例如如果myComponents
包含[MyComponent1, MyComponent2, MyComponent3]
,那么
renderMyComponents(myComponents){
return myComponents.map((MyComponent, index) => {
return (
<li key={index}>
<MyComponent />
</li>
)
});
}
以下是JSFiddle的链接。
答案 1 :(得分:1)
在react 16>中,您可以像这样在render内部返回一个组件数组:-
render(){
return this.state.myArray
}
答案 2 :(得分:0)
render() {
return (
<div>
<ul>
{myArray}
</ul>
</div>
);
}
答案 3 :(得分:-1)
如果我正确理解了这个问题 - 尝试将return
之前的某些变量设置为render
方法,然后设置为div,将此变量称为object:
render:
myArray = [Component1, Component2, Component3];
var myComp1 = myArray[0];
var myComp2 = myArray[1];
var myComp3 = myArray[2];
.....some code
return
....some code
<div>
{myComp1}
{myComp2}
{myComp3}
</div>
更新 React 16 :(这样在DOM中没有多余的DIV包装器所有元素,如同一级别的兄弟姐妹)
render(): {
const myArray = [Component1, Component2, Component3];
.....some code
return
....some code
<>
myArray.map((component) => {
return({component})
})
</>
}