- 59
- 0
问题描述
antd开发cascader过程中,后台返回给我的json是这样的:
{"content":[{"id":1,"code":"1001","pid":0,"nameCn":"网关","nameEn":"gateway"},{"id":2,"code":"1002","pid":0,"nameCn":"网桥","nameEn":"bridge"},{"id":3,"code":"1003","pid":0,"nameCn":"终端","nameEn":"terminal"},{"id":4,"code":"1004","pid":3,"nameCn":"耳标","nameEn":"ear tag"},{"id":5,"code":"1005","pid":3,"nameCn":"水位监测终端","nameEn":"water level monitoring terminal"},{"id":6,"code":"1006","pid":3,"nameCn":"电子通风器","nameEn":"electronic ventilator"},{"id":7,"code":"1007","pid":1,"nameCn":"网关","nameEn":"gateway"},{"id":8,"code":"1008","pid":2,"nameCn":"WiFi 网桥","nameEn":"WIFI bridge"}],"status":"OK","errorCode":null,"errorMsg":null}
你期待的结果是什么?实际看到的错误信息又是什么?
首先根据pid=0筛选出1级类目,然后再根据1级类目的id是否等于其他的pid筛选出2级,value是id,lable是nameCn,最后希望得到的数据格式:
coptions = [
{
value: '1',
label: '网关',
children: [
{
value: '7',
label: '网关',
},
],
},
{
value: '2',
label: '网桥',
children: [
{
value: '8',
label: 'WIFI 网桥',
},
],
},
{
value: '3',
label: '终端',
children: [
{
value: '4',
label: '耳标',
},
{
value: '5',
label: '水位监测终端',
},
{
value: '6',
label: '电子通风器',
},
],
},
]
我自己之前用filter筛选出pid>0和小于0的两个数组,后续不知道要怎么写,请教各位,谢谢
- 共 0 条
- 全部回答
-
ミ长发小鹿纯▽\ 普通会员 1楼
在Antd Cascader中,JSON解析是一个常见的需求,通常用于从JSON数据中提取和展示数据。以下是一个简单的示例,展示如何在Cascader中解析JSON数据:
首先,你需要在Antd中引入JSON库,例如:
javascript import * as React from 'antd'; import * as json from 'json';然后,你可以在你的Antd组件中使用JSON解析来获取和显示JSON数据:
```javascript import React from 'react'; import { Cascader } from 'antd'; import { jsonSerializer } from 'json';
const App = () => { const [data, setData] = React.useState([ { id: 1, text: 'Option 1', children: [ { id: 1-1, text: 'Option 1-1', children: [ { id: 1-1-1, text: 'Option 1-1-1', children: [ { id: 1-1-1-1, text: 'Option 1-1-1-1', }, ], }, { id: 1-1-2, text: 'Option 1-1-2', children: [ { id: 1-1-2-1, text: 'Option 1-1-2-1', }, ], }, { id: 1-1-3, text: 'Option 1-1-3', children: [ { id: 1-1-3-1, text: 'Option 1-1-3-1', }, ], }, ], }, { id: 2, text: 'Option 2', children: [ { id: 2-1, text: 'Option 2-1', children: [ { id: 2-1-1, text: 'Option 2-1-1', children: [ { id: 2-1-1-1, text: 'Option 2-1-1-1', }, ], }, ], }, { id: 2-2, text: 'Option 2-2', children: [ { id: 2-2-1, text: 'Option 2-2-1', children: [ { id: 2-2-1-1, text: 'Option 2-2-1-1', }, ], }, ], }, { id: 2-3, text: 'Option 2-3', children: [ { id: 2-3-1, text: 'Option 2-3-1', children: [ { id: 2-3-1-1, text: 'Option 2-3-1-1', }, ], }, ], }, ], }, ], }, ]);
const renderData = (data: any) => { const list = data.map(item => (
));{ setData(prevData => prevData.map(item => ({ ...item, id: event.target.value })); }} /> return list;};
return (
{ setData(prevData => prevData.map(item => ({ ...item, id: event.target.value })); }} renderData={renderData} /> ); }; export default App; ```
在这个示例中,我们首先定义了一个包含JSON数据的数组
data。然后,我们定义了一个名为renderData的函数,该函数接收一个JSON对象作为参数,并将该对象的每个选项转换为一个React元素,然后渲染到Cascader中。最后,我们定义了一个名为Cascader的组件,该组件包含data数组和renderData函数。在
renderData函数中,我们首先使用map函数将JSON对象的每个选项转换为一个React元素,然后使用key属性为每个选项设置一个唯一的id。然后,我们使用Cascader的value属性将选中的id设置为当前事件的参数,从而更新data数组。当用户选择一个选项时,
onChange事件会被触发,该事件将JSON对象的选中的id设置为当前事件的参数,从而更新data数组。最后,我们使用renderData函数将data数组转换为React元素,并渲染到Cascader中。注意:这个示例假设JSON对象具有一个名为
id的字段,表示选中的选项ID。在实际应用中,JSON对象可能包含更多的字段,例如name、value等,你可能需要根据实际情况修改Cascader的结构和行为。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
