javascript - 如何根据 JSON 文件中的布尔值自动添加过滤器
问题描述
我有一个 JSON 文件:
[
{
"id": 1,
"img": "https://example.jpg",
"availability": false
},
{
"id": 2,
"img": "https://example.jpg",
"availability": true
}
]
我想要实现的是让 JSONavailability : false
自动应用过滤器。这是我要应用的过滤器,我想将其应用到 img className="tile-image"
:
-webkit-filter: grayscale(100%);
filter: grayscale(100%);
到目前为止,这是我的代码:
import React, { Component } from 'react';
import './styles.css'
class GetOnlinePosts extends Component {
constructor(props){
super(props);
this.state = {
error : null,
isLoaded : false,
posts : []
};
}
componentDidMount(){
fetch("https://api.myjson.com")
.then( response => response.json())
.then(
(result) => {
this.setState({
isLoaded : true,
posts : result
});
},
(error) => {
this.setState({
isLoaded: true,
error
})
},
)
}
render() {
const {error, isLoaded, posts} = this.state;
const orderedPosts = [...posts.filter((post) => post.availability), ...posts.filter((post) => !post.availability)]
if(error){
return <div>Error in loading</div>
}else if (!isLoaded) {
return <div>Loading ...</div>
}else{
return(
<div>
<div className="tiles">
{
orderedPosts.map(post => (
<div key={post.id}>
<div className="tile">
<img className="tile-image" src={post.img} alt=""/>
</div>
</div>
))
}
</div>
</div>
);
}
}
}
export default GetOnlinePosts;
有关如何以虚假可用性将过滤器添加到 JSON 的任何帮助都会很棒。
解决方案
你有没有关于添加css类
.is-available {
-webkit-filter: grayscale(100%);
filter: grayscale(100%);
}
然后在组件中做
<div className="tile">
<img className={`tile-image ${availability && "is-active"} `} src={post.img} alt=""/>
</div>
推荐阅读
- html - DevExtreme 弹出窗口没有内容。(内容为空)
- powershell - 我可以作为普通用户将outlook通讯录导出到csv吗?
- javascript - 删除选择框标签中不需要的文本
- android - 在android studio中删除多个项目
- android - 授权错误 - 通过 Android Webview 登录 Google
- json - 文件夹中多个 json(嵌套)文件的 Elasticsearch logstash 配置
- javascript - 将文本文件加载到 JQuery 数据表中
- javascript - 你如何在 React-Native 视图中截断 Form.Label 文本?
- .net-core - 如何访问 Power BI 报表服务器 REST API
- python - ImportError:无法导入名称 '_ColumnEntity' Ubuntu20.10