element ui 树组件怎么让叶子节点没有下拉框和loading状态

error.png

如图所示.当他是根节点的时候不显示下拉框小三角?

阅读 5.8k
3 个回答

props有这个isLeaf参数,设置isLeaf为true就好了

你看官网的 树形控件懒加载

由于在点击节点时才进行该层数据的获取,默认情况下 Tree 无法预知某个节点是否为叶子节点,所以会为每个节点添加一个下拉按钮,如果节点没有下层数据,则点击后下拉按钮会消失。同时,你也可以提前告知 Tree 某个节点是否为叶子节点,从而避免在叶子节点前渲染下拉按钮。

在加载方法里resolve()是必须调用的,不然就会一直有loading转圈

如果能直接知道是不是根节点的话就在根结点加一个leaf: true就不会出现下拉按钮

  loadNode(node, resolve) {
    if (node.level === 0) {
      return resolve([{ name: '最外层' }])
    }
    // 你的异步方法
    let response = ajax(.....)
    response.then(res => {
      // 根据返回值封装data
      let data = []
      // data = res
      // 如果已经第三层以上就是根结点
      if (node.level > 3) {
        data.forEach(item => {
          item.leaf = true
        })
      }
      resolve(data)
    })
  }

如果需要再次点击加载才能知道是不是根结点的话,那就加载方法里判断当前点击的是不是根结点,是的话调用return resolve([])返回一个空数组,下拉按钮就会消失

  loadNode(node, resolve) {
    if (node.level === 0) {
      return resolve([{ name: '最外层' }])
    }
    // 你的异步方法
    let response = ajax(.....)
    response.then(res => {
      // 判断是根结点
      if (res.leaf) return resolve([])
      // 根据返回值封装data
      let data = []
      // data = res
      resolve(data)
    })
  }

有人吗?来个人

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