关于javascript:antd-Cascader-联动选择框-选过之后保存-再选刚刚选择的数据重置为不可选-disabled

4次阅读

共计 756 个字符,预计需要花费 2 分钟才能阅读完成。

成果

1. 代码
加以下办法的判断 lastLevelResetNull 可管制是否展现或不展现数据

init = () => {
    // 楼层会议室配置 - 大厦接口
    FloorguideAction.floorGuideMeetingBuildListTo({}).then((results) => {if (!results.success) {message.error("接口谬误", 0.5);
        return;
      }
      let {data = [] } = results;
      this.setState({data: this.lastLevelResetNull(data),
      });
    });
  };
  // 用来解决抉择完的大厦和楼层 再次新增就不可选的性能   lastLevelResetNull--> 最初一级重置为空
  lastLevelResetNull = (data = []) => {let result = [..._.cloneDeep(data)];
    const loop = (re) =>
      re.map((item) => {
                // 判断每一项的 disabled 的属性 is_save 是否是 true 如果是 true 就不能抉择
        item.disabled = item.is_save === "true";
        if (!_.isEmpty(item.children)) {loop(item.children);
        } else {item.children = void 0;}
      });
    if (!_.isEmpty(result)) {loop(result);
    }
    return result;
  };
  render() {let { data = [] } = this.state;
    return (
      <Cascader
        options={data}
        notFoundContent={null}
        allowClear={true}
        {...this.props}
      />
    );
  }
正文完
 0