element-ui如何根据数据里的checked判断多选是否为默认选中

1.根据checked是否为1来判断是否默认被选中(1为选中,2为未选中),现在的问题是两个checked都为1的情况下只会执行最后一个,而现在想要的效果是:只要checked为1就默认被选中

<template>
  <div>
    <el-tree
      :data="data2"
      show-checkbox
      default-expand-all
      node-key="checked"
      ref="tree"
      highlight-current
      :props="defaultProps">
    </el-tree>

    <div class="buttons">
      <el-button @click="setCheckedNodes">通过 node 设置</el-button>
    </div>
  </div>
</template>

<script>
  export default {
    methods: {
      setCheckedNodes() {
        console.log(this.$refs.tree)
        this.$refs.tree.setCheckedNodes([{
          checked: 1
        }]);
      }
    },
    data() {
      return {
        data2: [{
          checked: 1,
          label: '一级 1',
          children: [{
            checked: 0,
            label: '二级 1-1',
            children: [{
              checked: 0,
              label: '三级 1-1-1'
            }, {
              checked: 0,
              label: '三级 1-1-2'
            }]
          }]
        }, {
          checked: 1,
          label: '一级 2',
          children: [{
            checked: 0,
            label: '二级 2-1'
          }, {
            checked: 0,
            label: '二级 2-2'
          }]
        }, {
          checked: 0,
          label: '一级 3',
          children: [{
            checked: 0,
            label: '二级 3-1'
          }, {
            checked: 0,
            label: '二级 3-2'
          }]
        }],
        defaultProps: {
          children: 'children',
          label: 'label'
        }
      };
    }
  };
</script>

图片描述
图片描述

阅读 10.7k
3 个回答

目测你的 node-key 设置错误。

文档:

分别通过 default-expanded-keysdefault-checked-keys 设置默认展开和默认选中的节点。需要注意的是,此时必须设置 node-key ,其值为节点数据中的一个字段名,该字段在整棵树中是唯一的。

官方示例:

<el-tree
  :data="data2"
  show-checkbox
  node-key="id"
  :default-expanded-keys="[2, 3]"
  :default-checked-keys="[5]"
  :props="defaultProps">
</el-tree>

<script>
  export default {
    data() {
      return {
        data2: [{
          id: 1,
          label: '一级 1',
          children: [{
            id: 4,
            label: '二级 1-1',
            children: [{
              id: 9,
              label: '三级 1-1-1'
            }, {
              id: 10,
              label: '三级 1-1-2'
            }]
          }]
        }, {
          id: 2,
          label: '一级 2',
          children: [{
            id: 5,
            label: '二级 2-1'
          }, {
            id: 6,
            label: '二级 2-2'
          }]
        }, {
          id: 3,
          label: '一级 3',
          children: [{
            id: 7,
            label: '二级 3-1'
          }, {
            id: 8,
            label: '二级 3-2'
          }]
        }],
        defaultProps: {
          children: 'children',
          label: 'label'
        }
      };
    }
  };
</script>

请教,渲染tree时怎么根据data2数据的checked属性,渲染是否勾选

新手上路,请多包涵

请教,这个问题你怎么解决了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题