ant-design树选择框生成treeData数据结构

1、使用TreeSelect组件时,我们需要根据接口返回的数据生成官方样例的数组结构

ant-design树选择框生成treeData数据结构_第1张图片
2、因为比较基础简单,希望帮到更多的初学者,这里主要是分享代码,代码有根据具体情况命名进行修改,仅供参考

  const classGradesData = [];
    // eslint-disable-next-line no-unused-expressions
    classTypeSet &&
      classTypeSet.forEach((item, idex) => {
      // 生成children数组结构
        const gradesChildren = [];
        gradeList.forEach((itm, idx) => {
          if (item === itm.classType) {
            gradesChildren.push({
              grade: itm.gradeName,
              value: itm.gradeEnum,
              key: idx
            });
          }
        });
        // 生成value label数组结构
        const newGradesData = {
          label: item,
          key: idex,
          gradesChildren,
        };
        return classGradesData.push(newGradesData);
      });

ant-design树选择框生成treeData数据结构_第2张图片

  • 使用
  <Select
                mode="multiple"
                allowClear
                style={{ width: '100%' }}
                placeholder="请选择适用年级"
                onChange={this.handleChange}
                defaultValue={record.gradeEnumList}
              >
                {classGradesData.map((item, inx) => {
                  return (
                    <OptGroup label={item.label} key={`${inx * 3}`}>
                      {item.gradesChildren.map((item2, index2) => {
                        return (
                          <Option key={DataUtils.generateKey(index2)} value={item2.value}>
                            {item2.grade}
                          </Option>
                        );
                      })}
                    </OptGroup>
                  );
                })}
              </Select>

ant-design树选择框生成treeData数据结构_第3张图片

你可能感兴趣的:(#,ant-design,js)