当前位置: 首页 > news >正文

合肥百度 网站建设wordpress 上一篇下一篇

合肥百度 网站建设,wordpress 上一篇下一篇,微信商店小程序怎么弄,网站 颜色标准在写一个表单时使用了antd的 TreeSelect#xff0c;在对TreeSelect的值提交时发现#xff0c;父节点的值在半选状态时未提交#xff0c;在选中状态时#xff08;子节点全选#xff09;#xff0c;子节点不提交#xff0c;只提交父节点#xff0c;这与后端需求不符…在写一个表单时使用了antd的 TreeSelect在对TreeSelect的值提交时发现父节点的值在半选状态时未提交在选中状态时子节点全选子节点不提交只提交父节点这与后端需求不符后端要求提交全部的节点所有手动改造了一下以适应需求组件代码如下   import { TreeSelect } from antd; import React, { useState, useEffect } from react;export type FromTreeItem {key?: number | string;title?: string;parentKey?: number | string;value?: number | string;children?: FromTreeItem[]; };export type FromTreeSelectProps {value?: any;treeData?: FromTreeItem[];onChange?: (value: any) void; };/** * 解决antd TreeSelect 返回值不包含父节点问题 * param props * returns */ const FromTreeSelect: React.FCFromTreeSelectProps (props) {const [selectedKeys, setSelectedKeys] useState(string | number)[]([]);const [treeDataMap, setTreeDataMap] useStateRecordstring | number, FromTreeItem({});const treeToMap (tree: FromTreeItem[]): Recordstring | number, FromTreeItem {const map: Recordstring | number, FromTreeItem {};const traverse (nodes: FromTreeItem[]) {nodes.forEach(node {node.key ? map[node.key] node : null; // 将当前节点添加到映射中 if (node.children) {traverse(node.children); // 递归遍历子节点 }});};traverse(tree); // 从根节点开始遍历 return map;};useEffect(() {if (props.treeData)setTreeDataMap(treeToMap(props.treeData))}, [props.treeData]);useEffect(() {// 初始化 selectedKeys if (props.value treeDataMap) {setSelectedKeys(getAllChildrenKey(props.value));}}, [treeDataMap, props.value]);/** * 根据选中的key找到所有父节点key并一起返回 * param selectKeys */const getAllNodeKey (selectKeys: (string | number)[]): (string | number)[] {const allKeys new Setstring | number(selectKeys);;const traverse (node: FromTreeItem) {if (node.parentKey) {allKeys.add(node.parentKey)traverse(treeDataMap[node.parentKey])}};selectKeys.forEach(key {traverse(treeDataMap[key])});return Array.from(allKeys);};/** * 根据给定的值 找到给定节点是否选中了子节点如选中了子节点则删除当前节点* param keys * param tree */const getAllChildrenKey (keys: (string | number)[]): (string | number)[] {if (!keys)return []const allKeys new Setstring | number(keys);keys.forEach(key {const node: FromTreeItem treeDataMap[key];if (node.children) {node.children.forEach((child) {if (node.key allKeys.has(node.key) child.key allKeys.has(child.key)) {allKeys.delete(node.key)}});}})return Array.from(allKeys);};const handleChange (newKeys: (string | number)[]) {setSelectedKeys(newKeys);if (props.onChange) {props.onChange(getAllNodeKey(newKeys));}};const { SHOW_ALL } TreeSelect;return (TreeSelecttreeCheckabletreeData{props.treeData}value{selectedKeys}onChange{handleChange}showCheckedStrategy{SHOW_ALL}/); };export default FromTreeSelect; 使用方式同antd的其他组件如   Form.Itemname{menuIds}label{菜单}rules{[{ required: true }]}FromTreeSelect treeData{menuTreeData} //Form.Item
http://www.hkea.cn/news/14369579/

相关文章:

  • 聊城网站设计咨询黑马培训机构
  • 一个dede管理两个网站重庆森林讲的什么内容
  • 做网站工作好么电商运营培训学费多少
  • 南沙建设网站本地成都网站建设
  • 福州鼓楼区网站建设美食网站二级页面模板
  • 洛阳建站哪家好网站友情链接连接
  • 有什么做服装的网站虚拟主机发布网站吗
  • 网站开发分站宁远县做网站的
  • 网站建社石家庄wordpress app 登录
  • 哈尔滨网站基础优化网站建设 硬件
  • 网站建设xywlcn有专做高端折扣女装的网站吗
  • PHP网站开发工程师招聘seo网站建设视频
  • 广州网站建设信科公司上海自动seo
  • 迁安建设局网站作风建设主题活动 网站
  • 上海网站建设规划公司展览厅设计
  • 电子商务网站的开发方式福州网站建设liedns
  • 面试个人简历范文及网站建设网站建设任务
  • 推广网站源码怎样网站seo
  • 农安县住房和城乡建设厅网站iis 修改默认网站
  • 泉州网站建设公司推荐wordpress 前台英文
  • 网站设计步骤及流程一般做公司网站需要哪几点
  • 建设公司网站广告语深圳市勘察设计
  • 漳州正规网站建设微同步网站
  • 做销售网站移动电子商务网站建设
  • 国外注册品牌 建设网站企业网站设计收费
  • 四团网站建设公众号开发培训
  • 国外专业做集装箱别墅网站成品网站怎么被百度收录
  • 网站404报错微信公众号上怎么上传wordpress
  • 企业网站可以做淘宝客吗淮安建筑信息平台
  • 广州网站建设易企网站开发一般流程图