import React from 'react';
class Feladatlista extends React.Component{
constructor(props){
super(props);
}
feladatok = () => {
if(this.props.fl.length){
this.props.fl.map(fl => {
return <Feladatlista tipus={fl.tipus} nev={fl.nev} rang={fl.rang} fl={fl.fl}/>
})
}
}
render(){
return(
<div>
<div className={this.props.tipus}>
<p>{this.props.nev}</p>
<p>{this.props.rang}</p>
</div>
<div className='gyerek'>
{this.feladatok}
</div>
</div>
)
}
}
export default Feladatlista;
这是我的代码。我的计划是,拥有一个包含嵌套对象的数据库,在这里我用相互连接的相同组件推送数据。像这样:
const feladat = [
{név: 'asd',
tipus: 'a',
rang: '1',
fl:[
{név: 'dd',
tipus: 'a',
rang: '1',
fl: []},
{név: 'eded',
tipus: 'a',
rang: '2',
fl: [
{név: 'das',
tipus: 'a',
rang: '1',
fl: []},
{név: 'dasd',
tipus: 'a',
rang: '2',
fl: [
{név: 'dasd',
tipus: 'a',
rang: '1',
fl: []
}]
}]
}]
}
]
通过这种方式,在main(App.js)中我定义了第一个元素,并循环遍历所有数组。但我收到错误消息:index.js:2178 Warning: Functions are not valid as a React child. This may happen if you return a Component instead of <Component /> from render. Or maybe you meant to call this function rather than return it.
。问题是我想在组件中使用相同的组件,或其他?
答案 0 :(得分:1)
首先,您需要从feladatok
返回数据,
其次,您需要从像this.feladatok()
class Feladatlista extends React.Component {
feladatok = () => {
if (this.props.fl.length) {
return this.props.fl.map((fl, index) => {
return (
<Feladatlista
key={index}
tipus={fl.tipus}
nev={fl.nev}
rang={fl.rang}
fl={fl.fl}
/>
);
});
}
return null;
};
render() {
console.log(this.props.fl);
return (
<div>
<div className={this.props.tipus}>
<p>{this.props.nev}</p>
<p>{this.props.rang}</p>
</div>
<div className="gyerek">{this.feladatok()}</div>
</div>
);
}
}
<强> Working demo 强>