范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

antdCascader(或TreeSelec)仅根据最后一级value回显完整路径

  Cascader(或TreeSelect树选择器 )往往会在项目中用在分类管理这一需求,可以很好的展示分类的层级结构,有时可能因为分类会存在改变层级(如由四级分类变成了二级分类)的情况,后端接口会要求在存储分类数据的时候,仅传递 最后一级 的信息。 例子
  举个antd官网的例子: import { Cascader } from "antd";  const options = [   {     value: "zhejiang",     label: "Zhejiang",     children: [       {         value: "hangzhou",         label: "Hangzhou",         children: [           {             value: "xihu",             label: "West Lake",           },         ],       },     ],   },   {     value: "jiangsu",     label: "Jiangsu",     disabled: true,     children: [       {         value: "nanjing",         label: "Nanjing",         children: [           {             value: "zhonghuamen",             label: "Zhong Hua Men",           },         ],       },     ],   }, ];  function onChange(value) {   console.log(value); }  ReactDOM.render(, mountNode);
  在选中 Zhejiang / Hangzhou / Wes tLake 时,对应的value是 ["zhejiang", "hangzhou", "xihu"]  ,后端可能只需要你传递xihu  即可,而非数组形式的网站路径信息。
  这时前端在回显的时候会出现一个问题,无法根据 xihu  完整的回显之前的路径名Zhejiang / Hangzhou / Wes tLake了。如何收集完整的节点路径信息
  我们可以借助官网在TreeSelect给的提示 onChange时如何获得父节点信息?
  其思路就是将节点value作为对象 valueMap  的key,遍历节点的子节点children(如果有的话),通过parent该节点和其子节点链接起来。后续就可以用getPath  方法根据value  在valueMap  通过parent  一层一层找到对应的父节点信息了。const valueMap = {}; function loops(list, parent) {   return (list || []).map(({ children, value, label }) => {     const node = (valueMap[value] = {       parent,       data: {         label,         value       }     });     node.children = loops(children, node);     return node;   }); }  loops(treeData);  function getPath(value, prop) {   const path = [];   let current = valueMap[value];   while (current) {     path.unshift(current.data[prop]);     current = current.parent;   }   return path; }
  简单改造下,同时 valueMap  同时收集下lable  信息,同时getPath  支持返回指定prop  的信息,让回显更加灵活。如何使用getPath完成数据方法一:我们可以直接通过ref暴露出去
  useImperativeHandle(ref, () => ({ valueMap, getPath, }))
  但是这样在部分使用起来不合适,比如列表展示时,并且这样也会存在因为列表数据渲染时`Cascader`的`valueMap`还未收集好,而`getPath`获取结果为空的情况。
  我们可以试试方法二 方法二:支持自定义renderfunction CategorySelect(props, ref) {   const [value, setValue] = useState([]);   const [valueMap, setValueMap] = useState({});   // 根据value回显对应的label   const fullLabelPath = useMemo(() => {     if (!props.displayLabel) {       return;     }     return getPath(props.value, props.displayLabel);   }, [props.displayLabel, props.value, props.data, valueMap]);    ...    return {     (props.fullLabelRender)       ? props.fullLabelRender(fullLabelPath)       : (                    )   } }
  我们将全路径的渲染能力开放通过`props.fullLabelRender`
  使用可以这样使用 fullLabelRender={(fullLabelPath) => ({ fullLabelPath.join(" / ") })}
  因为 fullLabelPath  是useMemo  的返回值,valueMap  是useState  的返回值,这样我们也不必担心列表数据渲染时Cascader的valueMap  还未收集好的情况了,待valueMap  收集完毕后,自会重新渲染的。
  同样的思路也可以用在TreeSelect树选择器,我就不具体写了哦。

风暴来临,马云的预言又一次变成了现实!银行不改变,我们就改变银行这是马云曾经说过的话。最近大家是否发现,我们身边的银行正越来越少!刚刚传来重大消息工商银行,建设银行多个网点终止营业,其中包括工行上海大统支行,工行上海莘8天6人4000公里后,这是我对理想L8Pro的购买建议2020年春节假期,我租了一辆奔驰R500,准备带着一家人来个省内自驾游,先去广州从化泡个温泉,再到韶关爬爬丹霞山,返程去清远大峡谷看看。当时的疫情政策已经开始每天变化,我们到达从AI眼中的湖南ChatGPT竟熟知樟树港辣椒的多种吃法!还写了篇洞庭湖记2月10日,潇湘晨报晨视频记者与ChatGPT一起聊了聊岳阳。它不仅分享了岳阳的旅游攻略,介绍了岳阳东古湖观鸟注意事项,还分享了丰富的岳阳特产。但即使被称为当今最聪明的AI,在聊到平南镇苏湾村打造民俗田园综合体带动乡村生态游新天水记者王晓馨仿古城墙亭台楼阁水榭小桥2月9日,记者走进秦州区平南镇苏湾民俗庄园,独特的民俗风情画卷徐徐展开。近年来,苏湾村以发展乡村旅游为载体,深入挖掘农耕文化,将农耕民俗与旅湖北与河南的区划调整,16个县入豫14年,为何又划入了湖北省?在之前的文章中,作者和大家聊了一系列关于我国湖北省与周边各省区划变迁的故事,例如湖北省与安徽省湖北省与湖南省湖北省与陕西省之间的区划变迁。今天,我们聊聊湖北省与河南省之间的区划调整慈禧丑陋吓人?原来老佛爷长这样慈禧慈禧太后又称西太后老佛爷,在清朝最后几十年的光景里,实际上大清王朝的掌权人则是慈禧太后。她晚清重要政治人物,是清朝同治光绪时期的实际统治者,前后掌晚清政权近半个世纪。咸丰帝的妃温体仁辅驱逐异己而不留痕迹,连疑心很重的崇祯也常常浑然不觉大明日落崇祯王朝的人和事君贤臣佞大明最后的宰相们伴君如伴虎。不知道是不是遗传基因的作用,论起对手下臣子的刻薄来,明朝末代皇帝朱由检和他的杀人如麻的老祖宗朱元璋颇为相似。因此,能在崇现在还有人以为他矮丑?最近看了一些的有关秦始皇的内容,又想聊聊,来说说我心中的嬴政。说到秦始皇很多人都想到统一六国,统一文字度量衡的春秋伟业,那么秦始皇的长相真如历史课本上那样吗?根据礼纬的记载,秦始皇封狼居胥霍去病早逝之谜是功高震主,还是病故而亡?西汉时期,匈奴发展至鼎盛。此时的匈奴大军已经占据了大部分蒙古草原,要想继续扩张发展便需挥军南下,攻占中原土地。西汉时期,匈奴一方不断骚扰汉朝边境地区,给予汉朝很大的威胁,且匈奴与汉太平天国最后的送终者忠王李秀成忠王李秀成画像太平天国军中能能称得上政治家的有两个人,前期是冯云山,后期则是李秀成。冯云山为太平天国接生而李秀成呢则是为太平天国送终。今天我们就说说这个人。李秀成有一个超级粉丝,就朱安为生计求日本人,变卖鲁迅遗物被阻后,曾用7字评价许广平好内容我来评1899年,浙江绍兴。家道中落时运不济的朱家,终于迎来一件大喜事。已经23岁的女儿朱安,就要订婚了!早年,始终把女儿视为掌上明珠的朱家父母,挑选女婿的标准很是苛刻因为总
广州发布工业遗产管理办法,探寻城市记忆活化赋能老城市新活力南方财经全媒体见习记者程立元广州报道城市发展遗留如何焕发全新活力?沉睡在民众记忆里的老文化如何能有效表达其吸引力?作为中国工业史上的璀璨明珠,广州又将如何在传承改造和创新发展中求和商务部积极推进国家级经济技术开发区创新提升中证网讯(记者王舒嫄)商务部新闻发言人束珏婷12月29日在商务部例行发布会上表示,商务部将牵头会同有关部门和地方,积极推进国家级经济技术开发区(简称国家级经开区)创新提升。下一步,经济开发区市场监管局多措稳供保民生近日,经济开发区市场监督管理局迅速反应,多措并举,依法规范市场交易行为,确保良好的经营秩序。该局加大宣传引导力度,强化药店超市的第一责任人意识,督促经营者主动遵循公平合法诚实信用的回望2022,这个字是消费回暖的重要引擎年度产业观察新式茶饮受到年轻人的追捧。新国潮在消费市场风头正盛。预制菜驶入风口上的新赛道。2022年,我国消费市场持续迭代升级。新成为消费回暖的重要引擎新科技新产品新服务新应用,让人目不暇接。稳中求进谱新篇2022年永州经济工作述评2022年即将收官。回顾今年经济工作,当思成绩来之不易,值得倍加珍惜。今年以来,面对复杂严峻的国内外发展环境和疫情影响,永州经济顶住压力,前三季度全市地区生产总值(GDP)同比增5朱宏任抢占新兴产业发展先机提升我国在全球价值链中的地位中国制造业迈步由大向强,这一历史性进程需要充分发挥我国综合优势。在第七届中国制造强国论坛上,中国企业联合会党委书记常务副会长兼理事长,中国企业家协会常务副会长朱宏任在发言时表示。朱朋友圈日常短句文案丨照片有限,快乐无限1。人生不过三万天,今天是三万分之一的开心。2。天气晴,宜收集快乐。3。今天很好希望明天也是。4。生活中的小瞬间。5。再忙也要捕捉快乐。6。时光会走远影像会长存7。平安喜乐得偿所愿江苏守护最后一道防线,医疗机构每天最高收治能力达120万人次现代快报讯当前疫情防控进入新阶段,江苏各地不断强化发热门诊接诊力量,提高接诊能力,做到应设尽设应开尽开,多措并举保障居民就医需求。截至目前,全省医疗机构每天最高收治能力达120万人我,去意大利打工,发现那里人真懒,情愿领450欧元补助也不工作这是我们讲述的第1325位真人故事我是小郑晓世界很精彩,浙江丽水青田县人,现在意大利。高考时,我因滑档,只上了一所民营大学,因为不喜欢就退学当兵了。后来,我成为了一名协警,但是一月涉外法治工作开辟新局面党的十八大以来,以习近平同志为核心的党中央从坚持和发展中国特色社会主义的高度定位法治布局法治厉行法治,把全面依法治国纳入四个全面战略布局有力推进。习近平法治思想领航法治中国建设阔步玉容初30年匠心,坚守中草药护肤赛道疫情常态化下,长期佩戴口罩带来的闭口痘痘过敏脱皮等肌肤问题接踵而至。对口罩脸肌肤问题的修护成为了后疫情时代护肤的重中之重。但与此同时,也滋生了许多如概念性成分添加虚假功效宣传非法添