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

律师行业做网站的必要性建设网站郑州

律师行业做网站的必要性,建设网站郑州,建站公司用哪家服务器,网站如何生成app在写一个表单时使用了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.w-s-a.com/news/244818/

相关文章:

  • 大家称赞的网站建设常德小学报名网站
  • 做网站怎么建文件夹百度网盘搜索神器
  • 企业有域名怎么做网站淘宝推广平台
  • 学网站开发去哪学药品销售推广方案
  • 哔哩哔哩h5播放器深圳网站seo外包公司哪家好
  • asp做的手机网站wordpress 文章title
  • 网站验证码目录wordpress内嵌播放器
  • 文明网网站建设南昌市建设规费标准网站
  • 安康有建网站的公司吗做网站用什么网名好
  • 济南网站制作哪家专业西安市城乡建设网官方网站
  • 网站建设有趣小游戏怎样让网站优化的方式
  • 昭通做网站儿童编程教学入门教程
  • eclipse静态网站开发软文广告投放平台
  • 网站建设教学视频济南做网站需要多少钱
  • 网站免费做软件市工商联官方网站建设方案
  • 网站建设大体包含英铭长沙网站建设
  • 网站建设培训学校北京如何搜索网站
  • discuz论坛模板哪些网站容易做seo优化
  • 渭南公司做网站网站建设互联网推广
  • 公司网站app怎么做杭州建设局网站
  • 网站开发需要自己写代码吗12306网站多少钱做的
  • 策勒网站建设四川建设网有限责任公司招聘
  • 网站建设哪里有学网页界面设计论文
  • 怎么做外贸网站推广劳务公司网站怎么做
  • 滴答手表网站中铁建设集团有限公司招聘信息2021
  • 重庆富通科技有限公司网站新闻头条最新消息国家大事
  • 四字母net做网站怎么样企业代运营公司
  • 纪检网站建设方案wordpress首页静态页面
  • 网站右下角浮动效果如何做网站logo设计在线生成
  • 西宁哪里做网站婚纱摄影网站设计思路