【发布时间】:2019-12-04 21:53:03
【问题描述】:
我正在使用 React-Bootstrap 库开发一个 React 应用程序。 我显示了一个 ShopResume 组件,该组件在内部的地图功能中呈现 CardGroup 元素,以将我的数据映射到 CardGroup 中的每张卡片上。
我希望按行最多显示 3 张卡片。但我所有的改变似乎都不起作用。有人可以帮我解决吗?
现在我的所有卡片都只显示在一行上。当我的渲染已经在一行上显示 2 个项目时,我想创建新行。
奖励问题:即使条件为真,我的三元运算符也不显示它应该显示的内容。如果有任何想法会出现在哪里。我将不胜感激。
非常感谢您一如既往的帮助和宝贵的回答
class ShopResume extends Component {
state = {};
render() {
return (
<React.Fragment>
{(this.props.filteredResults === [""]) ? "Aucun Résultat" :
( <CardGroup className="card_container">
{this.props.filteredResults.map((detail, index) => {
return (
<Card className="card_item" key={index}>
<Card.Img variant="top" src={detail.imgURL} id="card_img" />
<Card.Body>
<Card.Title className="shopTitle">{detail.nom}</Card.Title>
<Card.Text>{detail.resume}</Card.Text>
<Button variant="primary" onClick={this.props.filterClick}>Détails</Button>
<ListGroup className="list-group-flush">
<ListGroupItem>
{detail.startPrice === "" ? "Sur devis" : 'A partir de ' + detail.startPrice + ' €'}
</ListGroupItem>
</ListGroup>
</Card.Body>
</Card>
);
})}
</CardGroup>)}
</React.Fragment>
);
}
}
export default ShopResume;
【问题讨论】:
-
您能否编写一个代码框来重现此问题?
-
您的三元运算符不起作用,因为您正在比较 2 个对象(数组是对象),它们是非原始类型。每个对象都有自己的内存位置,因此当您比较它们时,您基本上是在检查它们是否具有相同的内存位置,这是不可能的。 Here 更多的是关于这个话题。关于另一个问题,如果你能提供一个活生生的例子,那就太好了。
-
首先,非常感谢您的回答。我试着添加一个活生生的例子来更清楚。带着它快点回来。非常感谢
-
关于你的三元运算符:this.props.filteredResults === [""] 尝试这样写:this.props.filteredResults.length ===0
标签: css reactjs react-bootstrap