美文网首页
动态的生成嵌套型组件

动态的生成嵌套型组件

作者: RageYourDream_ | 来源:发表于2017-03-11 18:03 被阅读0次

不可行,下面的内容不要参考了

场景

现在有一个json型的数据,比如导航栏的数据,以树状的形式分布,我们需要拿到数据后动态的生成DOM

思路

很容易想到递归的方式去渲染,但是ES6的奇葩语法让我十分头疼,我想一次生成标签并返回

第一次尝试

用js语句做判断条件来动态生成标签
代码大概是这样的

let Options = data.map(function(data){
    var temp = data.fullpath.substring(0,data.fullpath.length - data.name.length);
    if ((data.isServiceUnit == 0) && fun1(temp,path))  
        count++;
        path=temp;
        result = result + "<SubMenu key=\""+data.id+"\" title=<span><Icon type=\"mail\" /><span>"+data.name+"</span></span>>\n"
//      return (
//          <SubMenu key={data.id} title={<span><Icon type="mail" /><span>{data.name}</span></span>}>
//      );
    
    if (data.isServiceUnit == 0) {
        path=temp;
        for(var i = 0;i<count;i++)
            result = result + "</SubMenu>\n";
//      data_temp.map(function(data2){
//          return (</SubMenu>)
//      })
        count = 0;
    }
    if (data.isServiceUnit == 1){
        result = result + "<Menu.Item key=\""+data.id+"\">"+data.name+"</Menu.Item>"
//      return (
//          <Menu.Item key={data.id}>{data.name}</Menu.Item>
//      )
    }
    else return;

}

经实践这样是行不通的,因为是嵌套标签,有时候一次return 返回的标签并不完整,所以编译器会报错,我自己想想这样的实现方式都奇葩,放弃。

第二次尝试

React 的官方文档中有一个这样的方法
dangerouslySetInnerHTML
经过我的实验,此方法可行

解决方法

先把json数据拿过来生成嵌套好的字符串,再用上面的方法一次性导入,就避开了上面的大坑。

这应该不是最好的解决方案,但至少解决了我的问题,在此分享一下,有更好的解决方法欢迎提出!

相关文章

  • 动态的生成嵌套型组件

    不可行,下面的内容不要参考了 场景 现在有一个json型的数据,比如导航栏的数据,以树状的形式分布,我们需要拿到数...

  • Uncaught Error: Rendered fewer h

    问题现象:页面崩溃,控制台报错信息如下: 错误原因:嵌套的子组件里面有根据条件动态生成内容,其中使用了hooks。...

  • iview 通过render函数渲染生成的input输入框实现双

    问题:iview中表格组件通过render函数动态生成Input组件输入框插入表格中,动态生成的Input输入框组...

  • 【REACT】嵌套组件的生成

    今天写了一个利用递归的方法,在页面上展示出一个树状的collapse, 样式如下: 原始数据长下面这样,其中par...

  • Vue Router 嵌套路由

    实际生活中的应用界面,通常由多层嵌套的组件组合而成。同样地,URL 中各段动态路径也按某种结构对应嵌套的各层组件,...

  • 2、vue子路由

    实际生活中的应用界面,通常由多层嵌套的组件组合而成。同样地,URL 中各段动态路径也按某种结构对应嵌套的各层组件。...

  • vue.js原生组件化开发(二)——父子组件

    前言 在了解父子组件之前应先掌握组件开发基础。在实际开发过程中,组件之间可以嵌套,也因此生成父子组件。 父子组件创...

  • vue组件和过渡操作

    Vue 一、组件 1、组件的嵌套 *1、全局组件的嵌套 *2、私有组件的嵌套 组件的作用域是独立的,对象的属性是私...

  • Linux学习:03-动态库嵌套编译生成

    多层动态库的嵌套实现 mul.c 生成->libmul.so库. add.c调用mul.c生成libadd.so库...

  • 在.vue文件中插入一个动态编辑的组件

    工作中有个需求,做一个动态组件,也就是组件代码由客户书写,然后生成页面,所以,就需要将动态书写的组件插入到页面中,...

网友评论

      本文标题:动态的生成嵌套型组件

      本文链接:https://www.haomeiwen.com/subject/qoqzgttx.html