javascript - 获取键值等于 true 的键名 - reactjs
问题描述
嗨,我有这个 json 文件,我想只在“可见”= true 的地方获取仪表板和数据表。
{
"MTs": {
"Dashboard": {
"id": 1,
"visible": true
},
"Datatable": {
"id": 1,
"visible": true
},
"Change Status": {
"id": 1,
"visible": false
}
}
}
这就是我到目前为止所做的。
const DD = () => {
useEffect(() => {
getMenu();
}, []);
const [data, setData] = useState({ MTs: [] });
const getMenu = async () => {
try {
const result = await axios("http://localhost:3000/file.json");
setData(result.data);
} catch (err) {
alert(err.message);
}
};
console.log(data);
var contentKeys = Object.keys(data["MTs"]);
for (const key in contentKeys) {
console.log(`${key}: ${contentKeys[key]}`);
}
var val = contentKeys
.filter(({ contentKeys }) => contentKeys !== true)
.map((x) => {
// const filter = x.filter(visible => visibile !== 1);
return <div>{x}</div>;
});
return <div>{val}</div>;
export default DD;
预期结果(仅显示):仪表板和数据表
任何帮助将非常感激
解决方案
export default function App() {
const data = {
MTs: {
Dashboard: {
id: 1,
visible: true
},
Datatable: {
id: 1,
visible: true
},
"Change Status": {
id: 1,
visible: false
}
}
};
const { MTs } = data;
return Object.keys(MTs)
.filter((property) => (MTs[property].visible ? property : false))
.map((item) => <div>{item}</div>);
}
https://codesandbox.io/s/eager-beaver-8nzop?file=/src/App.js
推荐阅读
- wordpress - Woocommerce 只读计费字段 - 选择和单选字段
- c# - Entityframework为什么耦合表会得到重复值?
- symfony - 如何调试捆绑中的 DependencyInjection ?
- websphere - websphere application server 8.5.5 创建了很多到 ldap 的连接
- javascript - 到达带有锚点的页面时触发事件
- android-sqlite - 如果我的表有 4 列并且我想获取第三列我该怎么做。
- java - 在可穿戴设备上使用 FTP 主动模式时出现“网络无法访问”
- linux - sigreturn 如何在 SECCOMP_SET_MODE_STRICT 中阻止除 SIGKILL 和 SIGSTOP 之外的所有信号?
- sql - HIVE 计算列中值的数量并聚合
- python - content-type text/plain 的文件扩展名为 .ksh?