映射反应中的所有非空对象
mapping through all non-empty objects in react
我正在使用 Framer X(它使用 React)来生成一堆组件。我有一个像这样的对象数组:
const chosenBets = [{}, { id: 1
label: "X"
odd: 2.63
oddIndex: 1
team_home: "Bournemouth"
team_away: "West Ham United"
matchCardIndex: 1}]
然后我通过数组进行映射:
{props.chosenBets.map((match, i) => {
return (
<div key={i}>
{i}
</div>
)
})}
结果会生成两个div,好像数组的长度是2。如何让它只渲染非空对象?
只需检查 map
中的对象是否非空。或者,使用 .filter()
.
{props.chosenBets.map((match, i) => {
if (Object.keys(match).length !== 0
return (
<div key={i}>
{i}
</div>
);
})}
只要先用filter
再用map
{props.chosenBets.filter(v=> Object.keys(v).length).map((match, i) => {
return (
<div key={i}>
{i}
</div>
)
})}
我正在使用 Framer X(它使用 React)来生成一堆组件。我有一个像这样的对象数组:
const chosenBets = [{}, { id: 1
label: "X"
odd: 2.63
oddIndex: 1
team_home: "Bournemouth"
team_away: "West Ham United"
matchCardIndex: 1}]
然后我通过数组进行映射:
{props.chosenBets.map((match, i) => {
return (
<div key={i}>
{i}
</div>
)
})}
结果会生成两个div,好像数组的长度是2。如何让它只渲染非空对象?
只需检查 map
中的对象是否非空。或者,使用 .filter()
.
{props.chosenBets.map((match, i) => {
if (Object.keys(match).length !== 0
return (
<div key={i}>
{i}
</div>
);
})}
只要先用filter
再用map
{props.chosenBets.filter(v=> Object.keys(v).length).map((match, i) => {
return (
<div key={i}>
{i}
</div>
)
})}