javascript - 在 React 中两次使用相同组件时的意外行为
问题描述
我有两个对象incs
,exps
每个对象都有属性desc
:amount
和id
。我想将容器中每个对象的详细信息显示为列表,并且两个容器是并排的。我是这样做的
const Details = props => {
return (
<div className={styles.container}>
<div className={styles.detailsItem}>
<ul>
{props.balance.incs.map(inc => (
<DetailsItem item={inc} key={inc.id}/>
))}
</ul>
</div>
<div className={styles.detailsItem}>
<ul>
{props.balance.exps.map(exp => (
<DetailsItem item={exp} key={exp.id}/>
))}
</ul>
</div>
</div>
);
};
由哪里DetailsItem.js
给出
const DetailsItem = ({item}) => {
return (
<li className={styles.listItem}>
<div>{item.desc}</div>
<div>{item.amount}</div>
</li>
)
}
该.scss
文件是
.container {
width: 80%;
max-width: 800px;
margin: 1rem auto;
padding: 1rem 0;
text-align: center;
display: flex;
justify-content: space-around;
.detailsItem {
width: 49%;
background: #eee;
box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.7);
h2{
text-transform: uppercase;
letter-spacing: 2px;
}
.listItem {
display: flex;
justify-content: space-around;
align-items: center;
font-size: 2rem;
padding: 0.5rem 0;
}
li:nth-child(even) {
background: rgb(219, 217, 217);
}
}
}
对象incs
和exps
通过表格填写。但是当我添加一个incs
条目时,exps
容器的增长量与incs
容器的增长量相同,尽管如果条目数exps
为 0 或小于 中的条目数,incs
反之亦然。见附图。这不是期望的结果。为什么会发生这种情况,以及如何使每个容器仅根据其对象的大小增长?
解决方案
您可以尝试处理exps为空的情况。将 css 设置为 display:none 等。没有 css 代码很难提供帮助。您也可以尝试将 exps 块包含在 if 代码中,以在长度为 0 时不显示 exps。
推荐阅读
- css - Flex 容器 2 项设置宽度 3 自动,3 项均分宽度
- php - 如何使用 Laravel Postman 仅获取活动参数?
- types - 如何在 Julia 中获取数据类型
- .net - 使用 InMemoryTestHarness 时如何注入 MassTransit 的 IPublishEndpoint
- python - 将 RAVI 文件转换为 CSV
- c - 为什么有必要“释放”一个节点?
- bash - 从bash中的loc输出中提取值
- php - id 属性在 laravel 的 map 函数中返回值 0
- c++ - SFML 不绘制多个圆
- python - Django聚合总和抛出`int()参数必须是字符串,类似字节的对象或数字,而不是'dict'`