在 React 中加载两列中的视频数组

Loading an array of videos in two columns in React

提问人:kenton 提问时间:6/30/2022 最后编辑:Ferran Buireukenton 更新时间:7/9/2022 访问量:110

问:

我正在尝试让视频按顺序在页面下每行加载两个视频,但我无法弄清楚如何。目前,我让它们在一列中从 contentful 加载:

const VideoPage = ({ data }) => {
return (
    <div>
        <Layout>
        <Head title="Videos"/>
            <div className={videoStyles.container}>
                {data.allContentfulVideoEmbed.nodes.map((node) => {
                    return (
                        <div>
                            <div className={videoStyles.videoWrapper}
                            dangerouslySetInnerHTML={{ __html: node.markdownContent.childMarkdownRemark.html }}
                            />
                            <div className={videoStyles.titles}>
                                <p>{node.title}</p>
                            </div>
                        </div>
                    );
                })}
            </div>
        </Layout>
    </div>
)
}

有谁知道如何去做?

javascript css reactjs contentful 视频嵌入

评论


答:

0赞 Oliver Heward 7/1/2022 #1

只需将它们放入一个有 2 列的网格中,然后每个循环项目将被放置在每行的 1 - 2 列中。例如,使用 Tailwindcss

const VideoPage = ({ data }) => {
return (
    <div>
        <Layout>
        <Head title="Videos"/>
            <div className="grid grid-cols-2">
                {data.allContentfulVideoEmbed.nodes.map((node) => {
                    return (
                      /**
                        * Every nth 1 will be column 1
                        * Every nth 2 will be column 2
                        */
                        <div>
                            <div className={videoStyles.videoWrapper}
                            dangerouslySetInnerHTML={{ __html: node.markdownContent.childMarkdownRemark.html }}
                            />
                            <div className={videoStyles.titles}>
                                <p>{node.title}</p>
                            </div>
                        </div>
                    );
                })}
            </div>
        </Layout>
    </div>
)
}

评论

0赞 kenton 7/2/2022
有没有办法在没有顺风的情况下做到这一点,也许是使用样式组件或 scss?
0赞 Oliver Heward 7/6/2022
是的,当然,Tailwind 只是使用类名对 css 的抽象。你只需要做这样的事情grid-template-columns: repeat(2, 1fr);