【问题标题】:TreeView in Vue not rendering subfolder content correctlyVue中的TreeView无法正确呈现子文件夹内容
【发布时间】:2020-11-16 08:41:56
【问题描述】:

我正在尝试在 Vue 中从头开始构建 TreeView。到目前为止,This 是我的代码。

我遇到的第一个问题是没有显示子文件夹的内容(如child folder 1)。第二个问题是最小化子文件夹会最小化整个树视图。

谁能帮我理解为什么会出现这两个功能错误以及如何解决它们?

【问题讨论】:

    标签: javascript vue.js treeview vue-component


    【解决方案1】:
    1. 您的代码只处理了您的第一级文件夹,您应该递归地撤销您的树组件来处理子文件夹。请参考以下文章。

    https://itnext.io/recursion-for-nested-tree-structure-components-in-vue-1cb600005475

    1. 您的代码使用一个参数 (isOpen) 来切换最小化所有文件夹,因此如果 isOpen 为 false,则所有文件夹都会最小化;您应该使用 item.isOpen 来处理不同的项目;
    treeData: {
            name: "My Tree",
            isOpen: true,
            children: [
              { name: "hello" },
              { name: "wat" },
              {
                name: "child folder",
                isOpen: false,
                children: [
                  {
                    name: "child folder 1",
                    isOpen: false,
                    children: [{ name: "hello" }, { name: "wat" }]
                  },
                  { name: "hello" },
                  { name: "wat" },
                  {
                    name: "child folder 2",
                    isOpen: false,
                    children: [{ name: "hello" }, { name: "wat" }]
                  }
                ]
              }
            ]
          }
        };
    

    【讨论】:

    • 在 TreeView.vue 的第 31 行,即 <span v-if="isFolder">[{{ isOpen ? '-' : '+' }}]</span> 中,我尝试将 isOpen 替换为 child.isOpen,但仍然无法展开子文件夹。
    • codesandbox.io/s/loving-booth-q3x4p?file=/src/components/… 这是一个粗略的例子。也许有些错误。仅供参考
    猜你喜欢
    • 1970-01-01
    • 2014-09-14
    • 1970-01-01
    • 2017-09-10
    • 2019-09-16
    • 1970-01-01
    • 2022-12-09
    • 1970-01-01
    • 2016-02-17
    相关资源
    最近更新 更多