如何将数据迭代到不同的组件/ div

时间:2016-08-21 09:16:53

标签: javascript reactjs redux react-redux

在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>
);

1 个答案:

答案 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>

     );
}