过滤或减少.Map中的帖子
- 过滤或减少.Map中的帖子 推荐度:
- 相关推荐
过滤或减少.Map中的帖子
所以我想从react组件的帖子中过滤出精选帖子。专门针对Gatsby.js。所有这些都在一个组件而不是两个组件中进行,以减少我编写的代码量。
所以我有以下代码,了解我要完成的工作
const BlogRoll = ({ data, featured }) => {
const { edges: posts } = data
return (
<div>
{posts &&
posts.map(({ node: post }) => (
<div>
if featured than posts.filter(post.featuredpost) or post.title (listing all of the posts instead)
</div>
))
}
</div>
)
}
在posts && posts.map部分中,有没有办法做到这一点?我知道我可以执行常规的if和else语句,但是我不必写两次相同的代码段。
回答如下:您可以在jsx中使用常规的javascript数组操作,在这种情况下,您可以通过featured
标志过滤数组,然后显示结果:
const posts = [
{
featuredpost: true,
title: "Featured Post"
},
{
title: "Normal Post"
},
{
featuredpost: true,
title: "Featured Post 2"
},
{
title: "Normal Post 2"
}
];
const App = () => {
return (
<div>
{posts
.filter(post => post.featuredpost)
.map(post => (
<h2>{post.title}</h2>
))}
</div>
);
};
const rootElement = document.getElementById("root");
ReactDOM.render(
<React.StrictMode>
<App />
</React.StrictMode>,
rootElement
);
<script src="https://cdnjs.cloudflare/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
<div id="root"></div>
最新文章
- php如何写接口
- Cocos Creator Layout组件
- 完美解决Ubuntu16.04虚拟机窗口全屏问题
- 手机移动端的UI框架
- [转]MinGW与MSYS
- 职场论
- IIS攻击与日志
- IIS网站——SSL安全加密机制
- iis网站服务器+sql server数据库服务器安全
- 高通Linux Android 平台中的蓝牙功能学习 (4)
- Linux 磁盘管理
- SAP 启动物料帐后不可更改物料价格的处理方法
- 浅谈Linux标准的文件系统(Ext2Ext3Ext4)
- VC++书籍介绍
- itoa函数和atoi函数的实现和用法
- html弹出div弹窗
- Python使用try...except...输出详细错误信息(比如报错具体位置在第几行)