基于对象值渲染时创建引导卡网格的问题

Posted

技术标签:

【中文标题】基于对象值渲染时创建引导卡网格的问题【英文标题】:Issues creating grid of Bootstrap cards when rendering based on Object values 【发布时间】:2021-12-28 03:43:30 【问题描述】:

我正在创建一个徒步旅行路线应用程序,允许用户将路线添加到公共存储库。

我有一个组件可以渲染一个 Boostrap Card,其中的值通过 props 传递给它。我使用.row.col 将它们排列成一个漂亮的网格。

为了从我的对象中的所有项目生成卡片,我从所述对象中读取数据(使用 map() )然后创建一个 Bootstrap 卡片网格。使用以下代码,它应该是这样的:

Trails.js:

<div id="trails" className="container rounded border shadow">
   <Card className="trailCard" />
</div>

Card.js:

class Card extends Component 
    render() 
        return (
            <div className="card-deck row">
                <div className="col-lg-4 card-col">
                    <div className="card">
                        <img className="card-img-top"  src="https://s24953.pcdn.co/blog/wp-content/uploads/2018/01/Templates-Guide-header-1-1024x576.png" />
                        <div className="card-body">
                            <h5 className="card-title">Card Title</h5>
                            <p className="card-text"><b>Description: </b>This is a longer card test. This is a longer card test.</p>
                            <p className="card-text"><b>Location: </b> This is a longer card test.</p>
                        </div>
                    </div>
                </div>
                <div className="col-lg-4 card-col">
                    <div className="card">
                        <img className="card-img-top"  src="https://s24953.pcdn.co/blog/wp-content/uploads/2018/01/Templates-Guide-header-1-1024x576.png" />
                        <div className="card-body">
                            <h5 className="card-title">Card Title</h5>
                            <p className="card-text"><b>Description: </b>This is a longer card test. This is a longer card test.</p>
                            <p className="card-text"><b>Location: </b> This is a longer card test.</p>
                        </div>
                    </div>
                </div>
               [etc..]
     </div>

当我从对象中读取值并使用 map() 来渲染新的 s 时,它看起来是这样的:

Trails.js:

                <div id="trails" className="container rounded border shadow">
                    <div className="card-deck-row">
                        this.props.trailList.map((item) => 
                            return (
                                <div className="col-lg-4 card-col">
                                    <Card
                                        className="trailCard"
                                        trailName=item.trailName
                                        trailType=item.trailType
                                        trailDescription=item.trailDescription
                                        trailLocation=item.trailLocation
                                    />
                                </div>
                            )
                        )
                    </div>
                </div>

Card.js:

class Card extends Component 
    render() 
        return (
                <div className="card">
                    <img className="card-img-top"  src="https://s24953.pcdn.co/blog/wp-content/uploads/2018/01/Templates-Guide-header-1-1024x576.png" />
                    <div className="card-body">
                        <h5 className="card-title">this.props.trailName</h5>
                        <p className="card-text"><b>Location: </b>this.props.trailLocation</p>
                        <p className="card-text"><b>Category: </b>this.props.trailType</p>
                        <p className="card-text"><b>Description: </b>this.props.trailDescription</p>
                    </div>
                </div>
        )
    


export default Card;

如何使第二个示例像第一个一样对齐到网格?

【问题讨论】:

className="card-deck-row" 的 div 是否具有整个屏幕的宽度?如果不是,它可能会占用 width: auto 这将是卡片本身的宽度。 【参考方案1】:

使用&lt;div className="card-deck row"&gt; 代替&lt;div className="card-deck-row"&gt;。希望这能解决您的问题。

【讨论】:

以上是关于基于对象值渲染时创建引导卡网格的问题的主要内容,如果未能解决你的问题,请参考以下文章

如何创建一个上面一列下面两列的引导网格?

OBJ Loader 不会“创建”或“渲染”对象

React Navigation - 基于 Routes.js 中的上下文值的条件渲染屏幕

Symfony呈现控制器和引导选项卡

材质选项卡中的 ag-grid

具有均匀垂直和水平空间的引导网格