如何在 JSX 中隐藏一些元素
How to hide some elements in JSX
我想在我的应用程序上显示一份餐点列表 'tags'。所以基于下面的代码,我能够做到这一点。因此,作为代码的结果,我将得到一个列表或一组显示的 mealTag。
问题:我想只显示前 2 个标签,隐藏其余标签并在单击时显示其余标签的位置添加 link '显示更多'。我如何在 ReactJS 中执行此操作?
return (
<View {...otherprops} style={styles.mainContainer} elevation={3}>
<View style={styles.contentContainer}>
<MealTagsSection mealTags={post.mealTags} />
</View>
type MealTagsProps = {
mealTags: Array<MealTag>;
};
export function MealTagsSection(props: MealTagsProps) {
let {mealTags} = props;
return (
<View style={styles.mealTagsContainer}>
{
mealTags.map((mealTag) => {
let tagStyle = '';
if (mealTag.category === 1) {
tagStyle = styles.tag_healthy;
} else {
tagStyle = styles.tag_improve;
}
return (
<View style={tagStyle}>
<Text style={styles.tagText}>{mealTag.description}</Text>
</View>
);
})
}
</View>
);
}
您可以在状态
中使用设置可见计数
this.state= {
visibleCount:2
}
并在map之前使用slice函数,例如
mealTags.slice(0, this.state.visibleCount).map(...)
然后您可以在按钮的 onClick 函数中根据需要增加可见数。
另一种选择是跟踪 .map
块中的索引
mealTags.map((mealTag, idx) => ...
并相应地设置样式,例如display:none
当 idx >= 2
我想在我的应用程序上显示一份餐点列表 'tags'。所以基于下面的代码,我能够做到这一点。因此,作为代码的结果,我将得到一个列表或一组显示的 mealTag。
问题:我想只显示前 2 个标签,隐藏其余标签并在单击时显示其余标签的位置添加 link '显示更多'。我如何在 ReactJS 中执行此操作?
return (
<View {...otherprops} style={styles.mainContainer} elevation={3}>
<View style={styles.contentContainer}>
<MealTagsSection mealTags={post.mealTags} />
</View>
type MealTagsProps = {
mealTags: Array<MealTag>;
};
export function MealTagsSection(props: MealTagsProps) {
let {mealTags} = props;
return (
<View style={styles.mealTagsContainer}>
{
mealTags.map((mealTag) => {
let tagStyle = '';
if (mealTag.category === 1) {
tagStyle = styles.tag_healthy;
} else {
tagStyle = styles.tag_improve;
}
return (
<View style={tagStyle}>
<Text style={styles.tagText}>{mealTag.description}</Text>
</View>
);
})
}
</View>
);
}
您可以在状态
中使用设置可见计数this.state= {
visibleCount:2
}
并在map之前使用slice函数,例如
mealTags.slice(0, this.state.visibleCount).map(...)
然后您可以在按钮的 onClick 函数中根据需要增加可见数。
另一种选择是跟踪 .map
块中的索引
mealTags.map((mealTag, idx) => ...
并相应地设置样式,例如display:none
当 idx >= 2