在react和redux中,我试图将rss数据从新闻网站迭代到不同的组件/ div。我不太确定如何解释这个
基本上我有一个主容器有3行div(组件),每个div的结构是不同的。 div的第一行有其他3个具有相同大小的div,第二行有两个,第三行有一个。 this is what it looks like
我想将数据传递给每个div。例如,我有来自api调用的10个数据,我希望第一行div有3个数据(数据1,2,3),因为它有3个div,第二行有2个数据(数据4,5)最后一行有1个数据(数据6),然后返回第一行。
我试图将数据从主容器传递到3个容器(div),但它没有按照我想要的方式进行。
我的主要容器组件如下所示:
render() {
const news = this.props.news.map(data =>
<div>
<Container1 data={data} />
<Container2 data={data} />
<Container3 data={data} />
</div>
);
return (
<div className="container">
{news}
</div>
);
答案 0 :(得分:0)
你可以使用这样的东西:
export default class RowExt extends Component {
state = {
clearData : null
};
componentWillReceiveProps = (nextProps)=> {
if (this.props.data !== nextProps.data) {
this.setState({
clearData: nextProps.data.slice(0, this.props.count)
});
}
};
}
并在另一个渲染方法中使用这样的方法:
render () {
return(
<RowExt count={2}/>
)
}
或者您可以检查map
函数中的索引并传递count
这样的道具:
render () {
return(
<div className="container">
{mapdata && mapdata.map((Row_data,index)=>{
return(
<RowExt count={index == 0 ? 2 : index == 1 ? 1 : index == 1 ? 0 } data={Row_data}/>
);
})}
</div>
);
}