美文网首页
React递归组件

React递归组件

作者: key君 | 来源:发表于2019-11-01 17:23 被阅读0次

src/page/TreePage.js

import React, { Component } from 'react'
import TreeNode from '../components/TreeNode';
//数据源
const treeData = {
    key: 0, //标识唯一性
    title: "全国", //节点名称显示
    children: [
      //子节点数组
      {
        key: 6,
        title: "北方区域",
        children: [
          {
            key: 1,
            title: "黑龙江省",
            children: [
              {
                key: 6,
                title: "哈尔滨",
              },
            ],
          },
          {
            key: 2,
            title: "北京",
          },
        ],
      },
      {
        key: 3,
        title: "南方区域",
        children: [
          {
            key: 4,
            title: "上海",
          },
          {
            key: 5,
            title: "深圳",
          },
        ],
      },
    ],
  };
export default class TreePage extends Component {
    render() {
        return (
            <div>
                <TreeNode data={treeData}/>
            </div>
        )
    }
}

src/components/TreeNode.js

import React, { Component } from 'react'

export default class TreeNode extends Component {
    constructor(props){
        super(props);
        this.state = {
            expanded: false
        }
    }
    render() {
        //传进来的对象是data
        const {title,children} = this.props.data;
        const {expanded} = this.state;
        const hasChildren = children && children.length > 0;
        return (
            <div>
                <div className="nodeInner" onClick={()=>this.setState({expanded:!expanded})}> 
                   {hasChildren && <i className={"tri " + (expanded ? "tri-open":"tri-close")}></i>}
                    <span>{title}</span>
                </div>
                {
                    hasChildren && expanded && <div className="children">
                        {
                            children.map(item => {
                                return <TreeNode key={item.key} data={item}/>
                            })
                        }
                    </div>
                }
            </div>
        )
    }
}

相关文章

  • React递归组件

    src/page/TreePage.js src/components/TreeNode.js

  • React基础

    React包含react元素和react组件 react元素 react组件 react组件分为函数组件和类组件 ...

  • 14.递归组件与动态组件

    递归组件与动态组件 递归组件 递归组件就是指组件在模板中调用自己,开启递归组件的必要条件,就是在组件中设置一个 n...

  • 组件

    组件是React的基石,所有的React应用程序都是基于组件的。React组件,可以通过React.createC...

  • 组件的高级用法

    递归组件 组件在它的模板中可以递归地调用自己,但是需要给组件设置 name 的选项。同时要注意限制递归的数量,否则...

  • ReactNative学习笔记(三)Hello World!

    React Native 看起来很像 React,但React Native的基础组件是原生组件 不是web组件。...

  • vue 组件递归

    组件递归常用到的栗子就比如树形结构的创建,需要自调用进行递归渲染下面是递归组件渲染tree的效果图: 2.调用组件...

  • react子组件向父组件传值

    相关资料:react 父组件怎么获取子组件的这个值React组件间信息传递方式react同级组件之间传值 • 父...

  • React 进阶二 组件详解

    React组件 React的组件大概分为俩部分,无状态组件和有状态组件 无状态组件。下面React官网中定义的一个...

  • 2、react基础介绍

    React理念 划分组件边界的原则 React组件的数据种类 React组件的声明周期 组件的划分 高内聚 低耦合...

网友评论

      本文标题:React递归组件

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