【问题标题】:multilevel nested list in material-ui nextMaterial-ui 中的多级嵌套列表
【发布时间】:2018-07-14 10:33:32
【问题描述】:

我想创建多级嵌套列表以在左侧显示菜单 - 与官方网站上的非常相似:https://material-ui-next.com/。 数据源采用 JSON 格式,其中每个项目还有关于父项目和其他一些数据的信息 - 这是示例:

{
    "task_number": 1201092,
    "task": "Monthly Cash Flow from Deliveries",
    "task_parent_number": 1201090,
    "task_parent": "Wholesale Cash Flow"
},
{
    "task_number": 1201095,
    "task": "Monthly Cash Flow from Fix Amounts",
    "task_parent_number": 1201090,
    "task_parent": "Wholesale Cash Flow"
},
{
    "task_number": 1201100,
    "task": "Wholesale Positions",
    "task_parent_number": 1200007,
    "task_parent": "Wholesale Contract Portfolio"
},
{
    "task_number": 1201200,
    "task": "All Wholesale Positions",
    "task_parent_number": 1201100,
    "task_parent": "Wholesale Positions"
}

我能够创建一个具有各种嵌套元素的对象 - 子元素 - 如果它们存在于以下函数中:

function getNestedChildren(arr, parent) {
  var out = [];
  for (var i in arr) {
    if (arr[i].task_parent_number == parent) {
      //console.log(i, arr[i].task_parent_number, arr[i].task_number);
      var children = getNestedChildren(arr, arr[i].task_number);
      if (children.length) {
        arr[i].children = children;
      }
      out.push(arr[i]);
    }
  }

  return out;
}

我一直按照说明创建嵌套列表并将其导入此处:https://material-ui-next.com/demos/lists/#nested-list

..但我无法根据需要创建带有嵌套元素的菜单。 .如果有人能指出我正确的方向会很棒..

【问题讨论】:

    标签: reactjs user-interface menu material-ui nested-lists


    【解决方案1】:

    好的,我把这两个部分结合起来工作:

    1. React 示例递归渲染:https://gist.github.com/nkvenom/bf7b1adfe982cb47dee3
    2. 这里的材料清单指南 - https://medium.com/@ali.atwa/getting-started-with-material-ui-for-react-59c82d9ffd93

    【讨论】:

    • 非常有用。谢谢你:)
    • 我正在使用相同的方法,但我正在努力解决的一件事是,我正在使用钩子并且我遇到了问题,当我单击父项时,一切正常,但是当我点击一个包含孙子的孩子时,整个菜单返回到“展开”状态,这意味着它关闭了,我怎样才能用钩子实现呢?
    猜你喜欢
    • 2018-04-05
    • 1970-01-01
    • 1970-01-01
    • 2020-10-29
    • 2021-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-04
    相关资源
    最近更新 更多