i've multiple react component; component_1, component_2, component_3
which want use inside component_4
have array_list :
array_list = [ { data: [{}, {}], rendermenu: component_1 }, { data: [{}, {}], rendermenu: component_2 }, { ..etc } ]
my component_4 this:
import componet_1 'component_1' import componet_1 'component_2' import componet_1 'component_3' //next populate item_array here const array_list = [ { data:[{},{}], rendermenu:component_1 }, {data:[{},{}], rendermenu:component_2 }, {..etc} ] class component_5 extends component{ render(){ <component_4 {...array_list}/> } }
i'm trying use inside component_4:
class component_4 extends component{ constructor(props){ super(props) } render(){ const {array_list} = this.props var contentdata = []; array_list.foreach(function(item, index, array){ console.log(item); item.data.foreach(function(item1, index, array){ console.log(item.rendercomponent); contentdata.push(<item.rendercomponent {...item}/>); }) }); return( <div> <div classname="ui 4 column centered grid"> {contentdata} </div> </div> ) } } export default component_4
now, question is, can pass components props i'm passing them using array_list
, know can done using this.props.child. here need different, need different component different array_list.
another question: can render array of components, i've done using contentdata
.
thanks response.
one clean solution not pass component directly @ all, only identifier can used in component_4
map individual entries different components.
for example:
import react 'react' import component_1 './component_1' import component_2 './component_2' import component_3 './component_3' export default const component_4 = (props) => { const items = props.items.map((item) => { switch (item.type) { case '1': return <component_1 {...item} /> case '2': return <component_2 {...item} /> case '3': return <component_3 {...item} /> default: return null } } return ( <div> <div classname="ui 4 column centered grid"> {items} </div> </div> ) }
import react 'react' import component_4 './component_4' const items = [ { data: [{}, {}], type: '1' }, { data: [{}, {}], type: '2' }, { ..etc } ] export default const component_5 = () => ( <component_4 items={items} /> )
Comments
Post a Comment