代码之家  ›  专栏  ›  技术社区  ›  Lee

如何在react中循环数据时向网格系统添加断点

  •  0
  • Lee  · 技术社区  · 6 年前

    我试图在react中为网格系统添加一个断点,同时遍历数据。但它并没有按我想要的方式行事。我想要三个 col-lg-3 ,然后添加断点 <div class="w-100"></div> 在继续相同的模式之前。

    我想如果把断点 index === 3 ,但由于我不得不将它包装在另一个div中,因此导致了一些意想不到的结果。

    const newVideoRow = category => {
      return category.map((video, index) => {
        if (index === 3) {
          return (
            <div>
              <div className="video col-sm-12 col-md-6 col-lg-3" key={video.title}>
                <Video
                  key={video.title}
                  videoTitle={video.title}
                  videoLink={video.video}
                  videoImage={video.image}
                />
              </div>
              <div className="w-100"/>
            </div>
          )
        }
    
      return (
        <div className="video col-sm-12 col-md-6 col-lg-3" key={video.title}>
          <Video
            key={video.title}
            videoTitle={video.title}
            videoLink={video.video}
            videoImage={video.image}
          />
        </div>
       )
      });
    };
    

    这是一张意外结果的照片。测试4应该在下一行。

    Picture of unexpected result

    降价显示 div 两者的包装 COL-LG-3 以及 <div class=“W-100”></div> . 这可能是问题的原因吗?如果是的话,我该怎么改?

    Devtools screenshot

    1 回复  |  直到 6 年前
        1
  •  1
  •   Subhendu Kundu    6 年前

    最简单的解决方法是使用片段 https://reactjs.org/docs/fragments.html 如果你用的是react 16。 例如,不要忘记导入它 import React, { Fragment } from 'react';

    const newVideoRow = category => {
      return category.map((video, index) => {
        if (index === 3) {
          return (
            <Fragment>
              <div className="video col-sm-12 col-md-6 col-lg-3" key={video.title}>
                <Video
                  key={video.title}
                  videoTitle={video.title}
                  videoLink={video.video}
                  videoImage={video.image}
                />
              </div>
              <div className="w-100"/>
            </Fragment>
          )
        }
    
      return (
        <div className="video col-sm-12 col-md-6 col-lg-3" key={video.title}>
          <Video
            key={video.title}
            videoTitle={video.title}
            videoLink={video.video}
            videoImage={video.image}
          />
        </div>
       )
      });
    };