mirror of
https://github.com/wahyd4/ant-design.git
synced 2026-08-23 03:36:30 +10:00
1190 lines
45 KiB
HTML
1190 lines
45 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
|
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
|
<meta name="format-detection" content="telephone=no">
|
|
<meta name="description" content="一个 UI 设计语言"/>
|
|
<title>
|
|
Tree 树形控件 - Ant Design
|
|
</title>
|
|
<link rel="icon" href="https://t.alipayobjects.com/images/T1QUBfXo4fXXXXXXXX.png" type="image/x-icon">
|
|
<link rel="shortcut icon" href="https://t.alipayobjects.com/images/T1QUBfXo4fXXXXXXXX.png" type="image/x-icon">
|
|
|
|
<link rel="stylesheet" href="../../dist/demo.css">
|
|
<link rel="stylesheet" href="../../static/style.css">
|
|
<link rel="stylesheet" href="../../static/tomorrow.css">
|
|
<!--[if IE 8]>
|
|
<script src="https://t.alipayobjects.com/images/rmsweb/T1q8JiXftaXXXXXXXX.js"></script>
|
|
<![endif]-->
|
|
<script src="https://as.alipayobjects.com/component/??console-polyfill/0.2.2/index.js,es5-shim/4.1.14/es5-shim.min.js,es5-shim/4.1.14/es5-sham.min.js,html5shiv/3.7.2/html5shiv.min.js"></script>
|
|
<script src="https://a.alipayobjects.com/??bluebird/2.9.30/bluebird.js,jquery/jquery/1.11.1/jquery.js"></script>
|
|
<script>
|
|
(function() {
|
|
window.ANT_COMPONENTS = [];
|
|
window.InstantClickChangeFns = [];
|
|
ANT_COMPONENTS.push({
|
|
title: 'Pagination',
|
|
desc: '分页'
|
|
});
|
|
ANT_COMPONENTS.push({
|
|
title: 'Affix',
|
|
desc: '固钉'
|
|
});
|
|
ANT_COMPONENTS.push({
|
|
title: 'Badge',
|
|
desc: '徽标数'
|
|
});
|
|
ANT_COMPONENTS.push({
|
|
title: 'Breadcrumb',
|
|
desc: '面包屑'
|
|
});
|
|
ANT_COMPONENTS.push({
|
|
title: 'Button',
|
|
desc: '按钮'
|
|
});
|
|
ANT_COMPONENTS.push({
|
|
title: 'Calendar',
|
|
desc: '日历'
|
|
});
|
|
ANT_COMPONENTS.push({
|
|
title: 'Carousel',
|
|
desc: '走马灯'
|
|
});
|
|
ANT_COMPONENTS.push({
|
|
title: 'Checkbox',
|
|
desc: '多选框'
|
|
});
|
|
ANT_COMPONENTS.push({
|
|
title: 'Collapse',
|
|
desc: '折叠面板'
|
|
});
|
|
ANT_COMPONENTS.push({
|
|
title: 'Datepicker',
|
|
desc: '日期选择框'
|
|
});
|
|
ANT_COMPONENTS.push({
|
|
title: 'Dropdown',
|
|
desc: '下拉菜单'
|
|
});
|
|
ANT_COMPONENTS.push({
|
|
title: 'Form',
|
|
desc: '表单'
|
|
});
|
|
ANT_COMPONENTS.push({
|
|
title: 'Icon',
|
|
desc: '图标'
|
|
});
|
|
ANT_COMPONENTS.push({
|
|
title: 'InputNumber',
|
|
desc: '数字输入框'
|
|
});
|
|
ANT_COMPONENTS.push({
|
|
title: 'Layout',
|
|
desc: '布局'
|
|
});
|
|
ANT_COMPONENTS.push({
|
|
title: 'Menu',
|
|
desc: '导航菜单'
|
|
});
|
|
ANT_COMPONENTS.push({
|
|
title: 'Message',
|
|
desc: '全局提示'
|
|
});
|
|
ANT_COMPONENTS.push({
|
|
title: 'Modal',
|
|
desc: '对话框'
|
|
});
|
|
ANT_COMPONENTS.push({
|
|
title: 'Notification',
|
|
desc: '通知提醒框'
|
|
});
|
|
ANT_COMPONENTS.push({
|
|
title: 'Alert',
|
|
desc: '警告提示'
|
|
});
|
|
ANT_COMPONENTS.push({
|
|
title: 'Popconfirm',
|
|
desc: '气泡确认框'
|
|
});
|
|
ANT_COMPONENTS.push({
|
|
title: 'Popover',
|
|
desc: '气泡卡片'
|
|
});
|
|
ANT_COMPONENTS.push({
|
|
title: 'Progress',
|
|
desc: '进度条'
|
|
});
|
|
ANT_COMPONENTS.push({
|
|
title: 'QueueAnim',
|
|
desc: '进出场动画'
|
|
});
|
|
ANT_COMPONENTS.push({
|
|
title: 'Radio',
|
|
desc: '单选框'
|
|
});
|
|
ANT_COMPONENTS.push({
|
|
title: 'Select',
|
|
desc: '选择器'
|
|
});
|
|
ANT_COMPONENTS.push({
|
|
title: 'Slider',
|
|
desc: '滑动输入条'
|
|
});
|
|
ANT_COMPONENTS.push({
|
|
title: 'Spin',
|
|
desc: '加载中'
|
|
});
|
|
ANT_COMPONENTS.push({
|
|
title: 'Steps',
|
|
desc: '步骤条'
|
|
});
|
|
ANT_COMPONENTS.push({
|
|
title: 'Switch',
|
|
desc: '开关'
|
|
});
|
|
ANT_COMPONENTS.push({
|
|
title: 'Table',
|
|
desc: '表格'
|
|
});
|
|
ANT_COMPONENTS.push({
|
|
title: 'Tabs',
|
|
desc: '标签页'
|
|
});
|
|
ANT_COMPONENTS.push({
|
|
title: 'Tag',
|
|
desc: '标签'
|
|
});
|
|
ANT_COMPONENTS.push({
|
|
title: 'Timeline',
|
|
desc: '时间轴'
|
|
});
|
|
ANT_COMPONENTS.push({
|
|
title: 'Timepicker',
|
|
desc: '时间选择框'
|
|
});
|
|
ANT_COMPONENTS.push({
|
|
title: 'Tooltip',
|
|
desc: '文字提示'
|
|
});
|
|
ANT_COMPONENTS.push({
|
|
title: 'Tree',
|
|
desc: '树形控件'
|
|
});
|
|
ANT_COMPONENTS.push({
|
|
title: 'Upload',
|
|
desc: '文件上传'
|
|
});
|
|
ANT_COMPONENTS.push({
|
|
title: 'Validation',
|
|
desc: '表单校验'
|
|
});
|
|
var i = location.pathname.split('/').lastIndexOf('ant-design');
|
|
if (i > 0) {
|
|
window.rootUrl = location.origin + location.pathname.split('/').slice(0, 2+1).join('/');
|
|
} else {
|
|
window.rootUrl = location.origin;
|
|
}
|
|
})();
|
|
</script>
|
|
<script src="../../static/script.js"></script>
|
|
<script>
|
|
window.antdVersion = {
|
|
latest: '0.10.1',
|
|
stable: '0.10.1'
|
|
};
|
|
</script>
|
|
<script src="../../dist/demo.js"></script>
|
|
<script>
|
|
window.require = function (path) {
|
|
var result = window;
|
|
var namespaces = path.split('/');
|
|
namespaces.forEach(function (key, i) {
|
|
if (i === 2) {
|
|
key = capitalizeFirstLetter(key);
|
|
}
|
|
if (key !== 'lib') {
|
|
if (result[key]) {
|
|
result = result[key];
|
|
} else {
|
|
throw 'There should not have modules here 2.';
|
|
}
|
|
}
|
|
});
|
|
function capitalizeFirstLetter(string) {
|
|
return string.charAt(0).toUpperCase() + string.slice(1);
|
|
}
|
|
|
|
return result;
|
|
};
|
|
</script>
|
|
<script src="https://t.alipayobjects.com/images/T1DrxhXe0mXXXXXXXX.js"></script>
|
|
|
|
</head>
|
|
<body >
|
|
<header id="header" class="clearfix">
|
|
<a class="logo" href="../..">
|
|
<img width="60" src="https://t.alipayobjects.com/images/rmsweb/T1B9hfXcdvXXXXXXXX.svg">
|
|
Ant Design
|
|
</a>
|
|
<div class="search">
|
|
<div id="autoComplete"></div>
|
|
</div>
|
|
<nav class="nav">
|
|
<span class="bar"></span>
|
|
<ul>
|
|
<li class="">
|
|
<a href="../.." data-no-instant>首页</a>
|
|
</li>
|
|
<li class="">
|
|
<a href="../../spec/introduce">设计</a>
|
|
</li>
|
|
<li>
|
|
<a class="nav-link-disabled" href="">案例</a>
|
|
</li>
|
|
<li class="current">
|
|
<a href="../../docs/introduce">React</a>
|
|
</li>
|
|
<li>
|
|
<a target="_blank" href="https://github.com/ant-design/ant-design">Github</a>
|
|
</li>
|
|
</ul>
|
|
</nav>
|
|
<div class="nav-phone-icon"></div>
|
|
</header>
|
|
<div class="main-wrapper">
|
|
|
|
<aside class="aside-container">
|
|
<ul>
|
|
<li class="">
|
|
<a href="../../docs/introduce" class="">
|
|
Ant Design of React
|
|
<span class="chinese"></span>
|
|
</a>
|
|
</li>
|
|
<li class="">
|
|
<a href="../../docs/getting-started" class="">
|
|
快速上手
|
|
<span class="chinese"></span>
|
|
</a>
|
|
</li>
|
|
<li class="">
|
|
<a href="../../docs/install" class="">
|
|
安装
|
|
<span class="chinese"></span>
|
|
</a>
|
|
</li>
|
|
<li class="">
|
|
<a href="../../docs/upgrade-to-0.10" class="">
|
|
0.10 升级指南
|
|
<span class="chinese"></span>
|
|
</a>
|
|
</li>
|
|
<li class="">
|
|
<a href="../../changelog" class="">
|
|
更新日志
|
|
<span class="chinese"></span>
|
|
</a>
|
|
</li>
|
|
<li open="open">
|
|
<h4>Components</h4>
|
|
<ul class="">
|
|
<li class="type-divider">基本</li>
|
|
<li class="">
|
|
<a href="../button/"
|
|
class="">
|
|
Button
|
|
<span class="chinese">按钮</span>
|
|
</a>
|
|
</li>
|
|
<li class="">
|
|
<a href="../icon/"
|
|
class="">
|
|
Icon
|
|
<span class="chinese">图标</span>
|
|
</a>
|
|
</li>
|
|
<li class="">
|
|
<a href="../layout/"
|
|
class="">
|
|
Layout
|
|
<span class="chinese">布局</span>
|
|
</a>
|
|
</li>
|
|
<li class="type-divider">表单</li>
|
|
<li class="">
|
|
<a href="../checkbox/"
|
|
class="">
|
|
Checkbox
|
|
<span class="chinese">多选框</span>
|
|
</a>
|
|
</li>
|
|
<li class="">
|
|
<a href="../datepicker/"
|
|
class="">
|
|
Datepicker
|
|
<span class="chinese">日期选择框</span>
|
|
</a>
|
|
</li>
|
|
<li class="">
|
|
<a href="../form/"
|
|
class="">
|
|
Form
|
|
<span class="chinese">表单</span>
|
|
</a>
|
|
</li>
|
|
<li class="">
|
|
<a href="../input-number/"
|
|
class="">
|
|
InputNumber
|
|
<span class="chinese">数字输入框</span>
|
|
</a>
|
|
</li>
|
|
<li class="">
|
|
<a href="../radio/"
|
|
class="">
|
|
Radio
|
|
<span class="chinese">单选框</span>
|
|
</a>
|
|
</li>
|
|
<li class="">
|
|
<a href="../select/"
|
|
class="">
|
|
Select
|
|
<span class="chinese">选择器</span>
|
|
</a>
|
|
</li>
|
|
<li class="">
|
|
<a href="../slider/"
|
|
class="">
|
|
Slider
|
|
<span class="chinese">滑动输入条</span>
|
|
</a>
|
|
</li>
|
|
<li class="">
|
|
<a href="../switch/"
|
|
class="">
|
|
Switch
|
|
<span class="chinese">开关</span>
|
|
</a>
|
|
</li>
|
|
<li class="">
|
|
<a href="../timepicker/"
|
|
class="">
|
|
Timepicker
|
|
<span class="chinese">时间选择框</span>
|
|
</a>
|
|
</li>
|
|
<li class="">
|
|
<a href="../upload/"
|
|
class="">
|
|
Upload
|
|
<span class="chinese">文件上传</span>
|
|
</a>
|
|
</li>
|
|
<li class="">
|
|
<a href="../validation/"
|
|
class="">
|
|
Validation
|
|
<span class="chinese">表单校验</span>
|
|
</a>
|
|
</li>
|
|
<li class="type-divider">展示</li>
|
|
<li class="">
|
|
<a href="../alert/"
|
|
class="">
|
|
Alert
|
|
<span class="chinese">警告提示</span>
|
|
</a>
|
|
</li>
|
|
<li class="">
|
|
<a href="../badge/"
|
|
class="">
|
|
Badge
|
|
<span class="chinese">徽标数</span>
|
|
</a>
|
|
</li>
|
|
<li class="">
|
|
<a href="../calendar/"
|
|
class="">
|
|
Calendar
|
|
<span class="chinese">日历</span>
|
|
</a>
|
|
</li>
|
|
<li class="">
|
|
<a href="../carousel/"
|
|
class="">
|
|
Carousel
|
|
<span class="chinese">走马灯</span>
|
|
</a>
|
|
</li>
|
|
<li class="">
|
|
<a href="../collapse/"
|
|
class="">
|
|
Collapse
|
|
<span class="chinese">折叠面板</span>
|
|
</a>
|
|
</li>
|
|
<li class="">
|
|
<a href="../dropdown/"
|
|
class="">
|
|
Dropdown
|
|
<span class="chinese">下拉菜单</span>
|
|
</a>
|
|
</li>
|
|
<li class="">
|
|
<a href="../message/"
|
|
class=""data-no-instant>
|
|
Message
|
|
<span class="chinese">全局提示</span>
|
|
</a>
|
|
</li>
|
|
<li class="">
|
|
<a href="../modal/"
|
|
class="">
|
|
Modal
|
|
<span class="chinese">对话框</span>
|
|
</a>
|
|
</li>
|
|
<li class="">
|
|
<a href="../notification/"
|
|
class=""data-no-instant>
|
|
Notification
|
|
<span class="chinese">通知提醒框</span>
|
|
</a>
|
|
</li>
|
|
<li class="">
|
|
<a href="../popconfirm/"
|
|
class="">
|
|
Popconfirm
|
|
<span class="chinese">气泡确认框</span>
|
|
</a>
|
|
</li>
|
|
<li class="">
|
|
<a href="../popover/"
|
|
class="">
|
|
Popover
|
|
<span class="chinese">气泡卡片</span>
|
|
</a>
|
|
</li>
|
|
<li class="">
|
|
<a href="../progress/"
|
|
class="">
|
|
Progress
|
|
<span class="chinese">进度条</span>
|
|
</a>
|
|
</li>
|
|
<li class="">
|
|
<a href="../table/"
|
|
class="">
|
|
Table
|
|
<span class="chinese">表格</span>
|
|
</a>
|
|
</li>
|
|
<li class="">
|
|
<a href="../tag/"
|
|
class="">
|
|
Tag
|
|
<span class="chinese">标签</span>
|
|
</a>
|
|
</li>
|
|
<li class="">
|
|
<a href="../timeline/"
|
|
class="">
|
|
Timeline
|
|
<span class="chinese">时间轴</span>
|
|
</a>
|
|
</li>
|
|
<li class="">
|
|
<a href="../tooltip/"
|
|
class="">
|
|
Tooltip
|
|
<span class="chinese">文字提示</span>
|
|
</a>
|
|
</li>
|
|
<li class="current">
|
|
<a href="./"
|
|
class="">
|
|
Tree
|
|
<span class="chinese">树形控件</span>
|
|
</a>
|
|
</li>
|
|
<li class="type-divider">导航</li>
|
|
<li class="">
|
|
<a href="../breadcrumb/"
|
|
class="">
|
|
Breadcrumb
|
|
<span class="chinese">面包屑</span>
|
|
</a>
|
|
</li>
|
|
<li class="">
|
|
<a href="../menu/"
|
|
class="">
|
|
Menu
|
|
<span class="chinese">导航菜单</span>
|
|
</a>
|
|
</li>
|
|
<li class="">
|
|
<a href="../pagination/"
|
|
class="">
|
|
Pagination
|
|
<span class="chinese">分页</span>
|
|
</a>
|
|
</li>
|
|
<li class="">
|
|
<a href="../steps/"
|
|
class="">
|
|
Steps
|
|
<span class="chinese">步骤条</span>
|
|
</a>
|
|
</li>
|
|
<li class="">
|
|
<a href="../tabs/"
|
|
class="">
|
|
Tabs
|
|
<span class="chinese">标签页</span>
|
|
</a>
|
|
</li>
|
|
<li class="type-divider">其他</li>
|
|
<li class="">
|
|
<a href="../affix/"
|
|
class="">
|
|
Affix
|
|
<span class="chinese">固钉</span>
|
|
</a>
|
|
</li>
|
|
<li class="">
|
|
<a href="../queue-anim/"
|
|
class="">
|
|
QueueAnim
|
|
<span class="chinese">进出场动画</span>
|
|
</a>
|
|
</li>
|
|
<li class="">
|
|
<a href="../spin/"
|
|
class="">
|
|
Spin
|
|
<span class="chinese">加载中</span>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</aside>
|
|
|
|
<section class="main-container">
|
|
<article class="markdown">
|
|
<h1>
|
|
Tree 树形控件
|
|
</h1>
|
|
<h2 id="何时使用">何时使用<a href="#何时使用" class="anchor">#</a> </h2><p>文件夹、组织架构、生物分类、国家地区等等,世间万物的大多数结构都是树形结构。使用<code>树控件</code>可以完整展现其中的层级关系,并具有展开收起选择等交互功能。</p>
|
|
<h2 id="api">API<a href="#api" class="anchor">#</a> </h2><h3 id="tree-props">Tree props<a href="#tree-props" class="anchor">#</a> </h3><table>
|
|
<thead>
|
|
<tr>
|
|
<th>参数</th>
|
|
<th>说明</th>
|
|
<th>类型</th>
|
|
<th>默认值</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>multiple</td>
|
|
<td>是否支持多选</td>
|
|
<td>bool</td>
|
|
<td>false</td>
|
|
</tr>
|
|
<tr>
|
|
<td>checkable</td>
|
|
<td>是否支持选中</td>
|
|
<td>bool</td>
|
|
<td>false</td>
|
|
</tr>
|
|
<tr>
|
|
<td>defaultExpandAll</td>
|
|
<td>设置展开所有树节点</td>
|
|
<td>bool</td>
|
|
<td>false</td>
|
|
</tr>
|
|
<tr>
|
|
<td>defaultExpandedKeys</td>
|
|
<td>展开指定的树节点</td>
|
|
<td>String[]</td>
|
|
<td>false</td>
|
|
</tr>
|
|
<tr>
|
|
<td>defaultCheckedKeys</td>
|
|
<td>默认选中复选框的树节点</td>
|
|
<td>String[]</td>
|
|
<td>[]</td>
|
|
</tr>
|
|
<tr>
|
|
<td>defaultSelectedKeys</td>
|
|
<td>默认选中的树节点</td>
|
|
<td>String[]</td>
|
|
<td>[]</td>
|
|
</tr>
|
|
<tr>
|
|
<td>onCheck</td>
|
|
<td>点击树节点或复选框触发</td>
|
|
<td>function(e:{checked:bool,node,checkedKeys,event})</td>
|
|
<td>-</td>
|
|
</tr>
|
|
<tr>
|
|
<td>onSelect</td>
|
|
<td>点击树节点触发</td>
|
|
<td>function(e:{checked:bool,node,checkedKeys,event})</td>
|
|
<td>-</td>
|
|
</tr>
|
|
<tr>
|
|
<td>onDataLoaded</td>
|
|
<td>异步加载数据</td>
|
|
<td>function(node)</td>
|
|
<td>-</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3 id="treenode-props">TreeNode props<a href="#treenode-props" class="anchor">#</a> </h3><table>
|
|
<thead>
|
|
<tr>
|
|
<th>参数</th>
|
|
<th>说明</th>
|
|
<th>类型</th>
|
|
<th>默认值</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>disabled</td>
|
|
<td>禁掉响应</td>
|
|
<td>bool</td>
|
|
<td>false</td>
|
|
</tr>
|
|
<tr>
|
|
<td>title</td>
|
|
<td>标题</td>
|
|
<td>String</td>
|
|
<td>'---'</td>
|
|
</tr>
|
|
<tr>
|
|
<td>key</td>
|
|
<td>被树的defaultCheckedKeys/defaultSelectedKeys/defaultExpandedKeys所用</td>
|
|
<td>String</td>
|
|
<td>内部计算出的节点位置</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
</article>
|
|
<h2 class="component-demos">
|
|
代码演示
|
|
<i class="anticon anticon-appstore icon-all" title="展开全部代码"></i>
|
|
</h2>
|
|
<div class="code-boxes">
|
|
<div class="code-boxes-col-2-1"><div class="code-box" id="demo-basic">
|
|
<div class="code-box-demo">
|
|
<div id="components-tree-demo-basic"></div>
|
|
<script>(function(){"use strict";
|
|
|
|
var _antd = require('antd');
|
|
|
|
var TreeNode = _antd.Tree.TreeNode;
|
|
|
|
ReactDOM.render(React.createElement(
|
|
_antd.Tree,
|
|
{ defaultExpandAll: false },
|
|
React.createElement(
|
|
TreeNode,
|
|
{ title: "parent 1" },
|
|
React.createElement(TreeNode, { title: "leaf" }),
|
|
React.createElement(
|
|
TreeNode,
|
|
{ title: "parent 1-1" },
|
|
React.createElement(
|
|
TreeNode,
|
|
{ title: "parent 2-1" },
|
|
React.createElement(TreeNode, { title: "leaf" }),
|
|
React.createElement(TreeNode, { title: "leaf" })
|
|
),
|
|
React.createElement(TreeNode, { title: "leaf" })
|
|
)
|
|
)
|
|
), document.getElementById('components-tree-demo-basic'));})()</script><div class="highlight"><pre><code class="javascript"><span class="hljs-keyword">import</span> { Tree } <span class="hljs-keyword">from</span> <span class="hljs-string">'antd'</span>;
|
|
<span class="hljs-keyword">const</span> TreeNode = Tree.TreeNode;
|
|
|
|
ReactDOM.render(
|
|
<span class="xml"><span class="hljs-tag"><<span class="hljs-title">Tree</span> <span class="hljs-attribute">defaultExpandAll</span>=<span class="hljs-value">{false}</span>></span>
|
|
<span class="hljs-tag"><<span class="hljs-title">TreeNode</span> <span class="hljs-attribute">title</span>=<span class="hljs-value">"parent 1"</span>></span>
|
|
<span class="hljs-tag"><<span class="hljs-title">TreeNode</span> <span class="hljs-attribute">title</span>=<span class="hljs-value">"leaf"</span> /></span>
|
|
<span class="hljs-tag"><<span class="hljs-title">TreeNode</span> <span class="hljs-attribute">title</span>=<span class="hljs-value">"parent 1-1"</span>></span>
|
|
<span class="hljs-tag"><<span class="hljs-title">TreeNode</span> <span class="hljs-attribute">title</span>=<span class="hljs-value">"parent 2-1"</span>></span>
|
|
<span class="hljs-tag"><<span class="hljs-title">TreeNode</span> <span class="hljs-attribute">title</span>=<span class="hljs-value">"leaf"</span> /></span>
|
|
<span class="hljs-tag"><<span class="hljs-title">TreeNode</span> <span class="hljs-attribute">title</span>=<span class="hljs-value">"leaf"</span> /></span>
|
|
<span class="hljs-tag"></<span class="hljs-title">TreeNode</span>></span>
|
|
<span class="hljs-tag"><<span class="hljs-title">TreeNode</span> <span class="hljs-attribute">title</span>=<span class="hljs-value">"leaf"</span> /></span>
|
|
<span class="hljs-tag"></<span class="hljs-title">TreeNode</span>></span>
|
|
<span class="hljs-tag"></<span class="hljs-title">TreeNode</span>></span>
|
|
<span class="hljs-tag"></<span class="hljs-title">Tree</span>></span>
|
|
, document.getElementById('components-tree-demo-basic'));</span></code></pre></div>
|
|
</div>
|
|
<div class="code-box-meta markdown">
|
|
<div class="code-box-title">
|
|
<a href="#demo-basic">基本</a>
|
|
</div>
|
|
<p>最简单的用法。</p>
|
|
<span class="collapse anticon anticon-circle-o-right" unselectable="none" style="-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;"></span>
|
|
</div>
|
|
</div><div class="code-box" id="demo-special">
|
|
<div class="code-box-demo">
|
|
<div id="components-tree-demo-special"></div>
|
|
<script>(function(){'use strict';
|
|
|
|
var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();
|
|
|
|
var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };
|
|
|
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
|
|
|
|
function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
|
|
|
|
var _antd = require('antd');
|
|
|
|
var TreeNode = _antd.Tree.TreeNode;
|
|
|
|
var TreeDemo = (function (_React$Component) {
|
|
_inherits(TreeDemo, _React$Component);
|
|
|
|
function TreeDemo(props) {
|
|
var _this = this;
|
|
|
|
_classCallCheck(this, TreeDemo);
|
|
|
|
_get(Object.getPrototypeOf(TreeDemo.prototype), 'constructor', this).call(this, props);
|
|
['handleClick', 'handleCheck', 'handleSelect'].forEach(function (m) {
|
|
_this[m] = _this[m].bind(_this);
|
|
});
|
|
this.state = {
|
|
checkedKeys: [],
|
|
selectedKeys: []
|
|
};
|
|
}
|
|
|
|
_createClass(TreeDemo, [{
|
|
key: 'handleClick',
|
|
value: function handleClick() {
|
|
this.setState({
|
|
checkedKeys: ['p11'],
|
|
selectedKeys: ['p21', 'p11']
|
|
});
|
|
}
|
|
}, {
|
|
key: 'handleCheck',
|
|
value: function handleCheck(info) {
|
|
console.log('check: ', info);
|
|
this.setState({
|
|
checkedKeys: ['p21'],
|
|
selectedKeys: ['p1', 'p21']
|
|
});
|
|
}
|
|
}, {
|
|
key: 'handleSelect',
|
|
value: function handleSelect(info) {
|
|
console.log('selected: ', info);
|
|
this.setState({
|
|
checkedKeys: ['p21'],
|
|
selectedKeys: ['p21']
|
|
});
|
|
}
|
|
}, {
|
|
key: 'render',
|
|
value: function render() {
|
|
return React.createElement(
|
|
'div',
|
|
null,
|
|
React.createElement(
|
|
_antd.Tree,
|
|
{ defaultExpandAll: true, checkable: true,
|
|
onCheck: this.handleCheck, checkedKeys: this.state.checkedKeys,
|
|
onSelect: this.handleSelect, selectedKeys: this.state.selectedKeys, multiple: true },
|
|
React.createElement(
|
|
TreeNode,
|
|
{ title: 'parent 1', key: 'p1' },
|
|
React.createElement(TreeNode, { key: 'p10', title: 'leaf' }),
|
|
React.createElement(
|
|
TreeNode,
|
|
{ title: 'parent 1-1', key: 'p11' },
|
|
React.createElement(
|
|
TreeNode,
|
|
{ title: 'parent 2-1', key: 'p21' },
|
|
React.createElement(
|
|
TreeNode,
|
|
null,
|
|
'test'
|
|
),
|
|
React.createElement(TreeNode, { title: React.createElement(
|
|
'span',
|
|
null,
|
|
'sss'
|
|
) })
|
|
),
|
|
React.createElement(TreeNode, { key: 'p22', title: 'leaf' })
|
|
)
|
|
),
|
|
React.createElement(TreeNode, { key: 'p12', title: 'leaf' })
|
|
),
|
|
React.createElement(
|
|
_antd.Button,
|
|
{ type: 'primary', size: 'small', onClick: this.handleClick },
|
|
'点此控制树节点'
|
|
)
|
|
);
|
|
}
|
|
}]);
|
|
|
|
return TreeDemo;
|
|
})(React.Component);
|
|
|
|
ReactDOM.render(React.createElement(TreeDemo, null), document.getElementById('components-tree-demo-special'));})()</script><div class="highlight"><pre><code class="javascript"><span class="hljs-keyword">import</span> { Tree, Button } <span class="hljs-keyword">from</span> <span class="hljs-string">'antd'</span>;
|
|
<span class="hljs-keyword">const</span> TreeNode = Tree.TreeNode;
|
|
|
|
<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">TreeDemo</span> <span class="hljs-keyword">extends</span> <span class="hljs-title">React</span>.<span class="hljs-title">Component</span> </span>{
|
|
constructor(props) {
|
|
<span class="hljs-keyword">super</span>(props);
|
|
[<span class="hljs-string">'handleClick'</span>, <span class="hljs-string">'handleCheck'</span>, <span class="hljs-string">'handleSelect'</span>].forEach((m)=> {
|
|
<span class="hljs-keyword">this</span>[m] = <span class="hljs-keyword">this</span>[m].bind(<span class="hljs-keyword">this</span>);
|
|
});
|
|
<span class="hljs-keyword">this</span>.state = {
|
|
checkedKeys: [],
|
|
selectedKeys: []
|
|
}
|
|
}
|
|
handleClick() {
|
|
<span class="hljs-keyword">this</span>.setState({
|
|
checkedKeys: [<span class="hljs-string">'p11'</span>],
|
|
selectedKeys: [<span class="hljs-string">'p21'</span>, <span class="hljs-string">'p11'</span>]
|
|
})
|
|
}
|
|
handleCheck(info) {
|
|
<span class="hljs-built_in">console</span>.log(<span class="hljs-string">'check: '</span>, info);
|
|
<span class="hljs-keyword">this</span>.setState({
|
|
checkedKeys: [<span class="hljs-string">'p21'</span>],
|
|
selectedKeys: [<span class="hljs-string">'p1'</span>, <span class="hljs-string">'p21'</span>]
|
|
})
|
|
}
|
|
handleSelect(info) {
|
|
<span class="hljs-built_in">console</span>.log(<span class="hljs-string">'selected: '</span>, info);
|
|
<span class="hljs-keyword">this</span>.setState({
|
|
checkedKeys: [<span class="hljs-string">'p21'</span>],
|
|
selectedKeys: [<span class="hljs-string">'p21'</span>]
|
|
})
|
|
}
|
|
render() {
|
|
<span class="hljs-keyword">return</span> (<span class="xml"><span class="hljs-tag"><<span class="hljs-title">div</span>></span>
|
|
<span class="hljs-tag"><<span class="hljs-title">Tree</span> <span class="hljs-attribute">defaultExpandAll</span>=<span class="hljs-value">{true}</span> <span class="hljs-attribute">checkable</span>=<span class="hljs-value">{true}</span>
|
|
<span class="hljs-attribute">onCheck</span>=<span class="hljs-value">{this.handleCheck}</span> <span class="hljs-attribute">checkedKeys</span>=<span class="hljs-value">{this.state.checkedKeys}</span>
|
|
<span class="hljs-attribute">onSelect</span>=<span class="hljs-value">{this.handleSelect}</span> <span class="hljs-attribute">selectedKeys</span>=<span class="hljs-value">{this.state.selectedKeys}</span> <span class="hljs-attribute">multiple</span>></span>
|
|
<span class="hljs-tag"><<span class="hljs-title">TreeNode</span> <span class="hljs-attribute">title</span>=<span class="hljs-value">"parent 1"</span> <span class="hljs-attribute">key</span>=<span class="hljs-value">"p1"</span>></span>
|
|
<span class="hljs-tag"><<span class="hljs-title">TreeNode</span> <span class="hljs-attribute">key</span>=<span class="hljs-value">"p10"</span> <span class="hljs-attribute">title</span>=<span class="hljs-value">"leaf"</span>/></span>
|
|
<span class="hljs-tag"><<span class="hljs-title">TreeNode</span> <span class="hljs-attribute">title</span>=<span class="hljs-value">"parent 1-1"</span> <span class="hljs-attribute">key</span>=<span class="hljs-value">"p11"</span>></span>
|
|
<span class="hljs-tag"><<span class="hljs-title">TreeNode</span> <span class="hljs-attribute">title</span>=<span class="hljs-value">"parent 2-1"</span> <span class="hljs-attribute">key</span>=<span class="hljs-value">"p21"</span>></span>
|
|
<span class="hljs-tag"><<span class="hljs-title">TreeNode</span>></span>test<span class="hljs-tag"></<span class="hljs-title">TreeNode</span>></span>
|
|
<span class="hljs-tag"><<span class="hljs-title">TreeNode</span> <span class="hljs-attribute">title</span>=<span class="hljs-value">{<span</span>></span>sss<span class="hljs-tag"></<span class="hljs-title">span</span>></span>}/>
|
|
<span class="hljs-tag"></<span class="hljs-title">TreeNode</span>></span>
|
|
<span class="hljs-tag"><<span class="hljs-title">TreeNode</span> <span class="hljs-attribute">key</span>=<span class="hljs-value">"p22"</span> <span class="hljs-attribute">title</span>=<span class="hljs-value">"leaf"</span>/></span>
|
|
<span class="hljs-tag"></<span class="hljs-title">TreeNode</span>></span>
|
|
<span class="hljs-tag"></<span class="hljs-title">TreeNode</span>></span>
|
|
<span class="hljs-tag"><<span class="hljs-title">TreeNode</span> <span class="hljs-attribute">key</span>=<span class="hljs-value">"p12"</span> <span class="hljs-attribute">title</span>=<span class="hljs-value">"leaf"</span>/></span>
|
|
<span class="hljs-tag"></<span class="hljs-title">Tree</span>></span>
|
|
<span class="hljs-tag"><<span class="hljs-title">Button</span> <span class="hljs-attribute">type</span>=<span class="hljs-value">"primary"</span> <span class="hljs-attribute">size</span>=<span class="hljs-value">"small"</span> <span class="hljs-attribute">onClick</span>=<span class="hljs-value">{this.handleClick}</span>></span>点此控制树节点<span class="hljs-tag"></<span class="hljs-title">Button</span>></span>
|
|
<span class="hljs-tag"></<span class="hljs-title">div</span>></span>)</span>;
|
|
}
|
|
}
|
|
|
|
ReactDOM.render(<span class="xml"><span class="hljs-tag"><<span class="hljs-title">TreeDemo</span> /></span>, document.getElementById('components-tree-demo-special'));</span></code></pre></div>
|
|
</div>
|
|
<div class="code-box-meta markdown">
|
|
<div class="code-box-title">
|
|
<a href="#demo-special">接收外部传参</a>
|
|
</div>
|
|
<p>受控组件,外部传入参数,控制树对象节点</p>
|
|
<span class="collapse anticon anticon-circle-o-right" unselectable="none" style="-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;"></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="code-boxes-col-2-1"><div class="code-box" id="demo-checkbox">
|
|
<div class="code-box-demo">
|
|
<div id="components-tree-demo-checkbox"></div>
|
|
<script>(function(){'use strict';
|
|
|
|
var _antd = require('antd');
|
|
|
|
var TreeNode = _antd.Tree.TreeNode;
|
|
|
|
function handleCheck(info) {
|
|
console.log('check: ', info);
|
|
}
|
|
|
|
ReactDOM.render(React.createElement(
|
|
'div',
|
|
null,
|
|
React.createElement(
|
|
_antd.Tree,
|
|
{ defaultExpandAll: true, checkable: true, onCheck: handleCheck },
|
|
React.createElement(
|
|
TreeNode,
|
|
{ title: 'parent 1' },
|
|
React.createElement(TreeNode, { title: 'leaf' }),
|
|
React.createElement(
|
|
TreeNode,
|
|
{ title: 'parent 1-1' },
|
|
React.createElement(
|
|
TreeNode,
|
|
{ title: 'parent 2-1' },
|
|
React.createElement(TreeNode, { title: 'leaf' }),
|
|
React.createElement(TreeNode, { title: 'leaf' })
|
|
),
|
|
React.createElement(TreeNode, { title: 'leaf' })
|
|
)
|
|
)
|
|
)
|
|
), document.getElementById('components-tree-demo-checkbox'));})()</script><div class="highlight"><pre><code class="javascript"><span class="hljs-keyword">import</span> { Tree } <span class="hljs-keyword">from</span> <span class="hljs-string">'antd'</span>;
|
|
<span class="hljs-keyword">const</span> TreeNode = Tree.TreeNode;
|
|
|
|
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">handleCheck</span>(<span class="hljs-params">info</span>) </span>{
|
|
<span class="hljs-built_in">console</span>.log(<span class="hljs-string">'check: '</span>, info);
|
|
}
|
|
|
|
ReactDOM.render(<span class="xml"><span class="hljs-tag"><<span class="hljs-title">div</span>></span>
|
|
<span class="hljs-tag"><<span class="hljs-title">Tree</span> <span class="hljs-attribute">defaultExpandAll</span>=<span class="hljs-value">{true}</span> <span class="hljs-attribute">checkable</span>=<span class="hljs-value">{true}</span> <span class="hljs-attribute">onCheck</span>=<span class="hljs-value">{handleCheck}</span>></span>
|
|
<span class="hljs-tag"><<span class="hljs-title">TreeNode</span> <span class="hljs-attribute">title</span>=<span class="hljs-value">"parent 1"</span>></span>
|
|
<span class="hljs-tag"><<span class="hljs-title">TreeNode</span> <span class="hljs-attribute">title</span>=<span class="hljs-value">"leaf"</span> /></span>
|
|
<span class="hljs-tag"><<span class="hljs-title">TreeNode</span> <span class="hljs-attribute">title</span>=<span class="hljs-value">"parent 1-1"</span>></span>
|
|
<span class="hljs-tag"><<span class="hljs-title">TreeNode</span> <span class="hljs-attribute">title</span>=<span class="hljs-value">"parent 2-1"</span>></span>
|
|
<span class="hljs-tag"><<span class="hljs-title">TreeNode</span> <span class="hljs-attribute">title</span>=<span class="hljs-value">"leaf"</span> /></span>
|
|
<span class="hljs-tag"><<span class="hljs-title">TreeNode</span> <span class="hljs-attribute">title</span>=<span class="hljs-value">"leaf"</span> /></span>
|
|
<span class="hljs-tag"></<span class="hljs-title">TreeNode</span>></span>
|
|
<span class="hljs-tag"><<span class="hljs-title">TreeNode</span> <span class="hljs-attribute">title</span>=<span class="hljs-value">"leaf"</span> /></span>
|
|
<span class="hljs-tag"></<span class="hljs-title">TreeNode</span>></span>
|
|
<span class="hljs-tag"></<span class="hljs-title">TreeNode</span>></span>
|
|
<span class="hljs-tag"></<span class="hljs-title">Tree</span>></span>
|
|
<span class="hljs-tag"></<span class="hljs-title">div</span>></span>
|
|
, document.getElementById('components-tree-demo-checkbox'));</span></code></pre></div>
|
|
</div>
|
|
<div class="code-box-meta markdown">
|
|
<div class="code-box-title">
|
|
<a href="#demo-checkbox">可选择</a>
|
|
</div>
|
|
<p>提供复选框操作功能。</p>
|
|
<span class="collapse anticon anticon-circle-o-right" unselectable="none" style="-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;"></span>
|
|
</div>
|
|
</div><div class="code-box" id="demo-dynamic">
|
|
<div class="code-box-demo">
|
|
<div id="components-tree-demo-dynamic"></div>
|
|
<script>(function(){"use strict";
|
|
|
|
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; return arr2; } else { return Array.from(arr); } }
|
|
|
|
var _antd = require('antd');
|
|
|
|
var TreeNode = _antd.Tree.TreeNode;
|
|
|
|
var asyncTree = [{ name: "pNode 01", key: "0-0" }];
|
|
|
|
var generateTreeNodes = function generateTreeNodes() {
|
|
var arr = [{ name: "伯约", key: "0-0-0" }];
|
|
return arr;
|
|
};
|
|
|
|
var TreeDemo = React.createClass({
|
|
displayName: "TreeDemo",
|
|
|
|
timeout: function timeout() {
|
|
var _this = this;
|
|
|
|
var duration = arguments.length <= 0 || arguments[0] === undefined ? 0 : arguments[0];
|
|
|
|
return new Promise(function (resolve, reject) {
|
|
setTimeout(resolve.bind(_this), duration);
|
|
});
|
|
},
|
|
getInitialState: function getInitialState() {
|
|
return {
|
|
treeData: []
|
|
};
|
|
},
|
|
componentDidMount: function componentDidMount() {
|
|
var _this2 = this;
|
|
|
|
this.timeout(1000).then(function () {
|
|
_this2.setState({
|
|
treeData: asyncTree
|
|
});
|
|
return asyncTree;
|
|
});
|
|
},
|
|
handleSelect: function handleSelect(info) {
|
|
console.log('selected', info);
|
|
},
|
|
handleDataLoaded: function handleDataLoaded(treeNode) {
|
|
var _this3 = this;
|
|
|
|
return this.timeout(1000).then(function () {
|
|
var child = generateTreeNodes();
|
|
var treeData = [].concat(_toConsumableArray(_this3.state.treeData));
|
|
treeData.forEach(function (item) {
|
|
if (item.key === treeNode.props.eventKey) {
|
|
item.children = child;
|
|
}
|
|
});
|
|
_this3.setState({ treeData: treeData });
|
|
return child;
|
|
});
|
|
},
|
|
render: function render() {
|
|
var loop = function loop(data) {
|
|
return data.map(function (item) {
|
|
if (item.children) {
|
|
return React.createElement(
|
|
TreeNode,
|
|
{ title: item.name, key: item.key },
|
|
loop(item.children)
|
|
);
|
|
} else {
|
|
return React.createElement(TreeNode, { title: item.name, key: item.key });
|
|
}
|
|
});
|
|
};
|
|
var parseTreeNode = function parseTreeNode(data) {
|
|
return loop(data);
|
|
};
|
|
var treeNodes = parseTreeNode(this.state.treeData);
|
|
return React.createElement(
|
|
_antd.Tree,
|
|
{ onSelect: this.handleSelect, onDataLoaded: this.handleDataLoaded, showLine: false },
|
|
treeNodes
|
|
);
|
|
}
|
|
});
|
|
|
|
ReactDOM.render(React.createElement(TreeDemo, null), document.getElementById('components-tree-demo-dynamic'));})()</script><div class="highlight"><pre><code class="javascript"><span class="hljs-keyword">import</span> { Tree } <span class="hljs-keyword">from</span> <span class="hljs-string">'antd'</span>;
|
|
<span class="hljs-keyword">const</span> TreeNode = Tree.TreeNode;
|
|
|
|
<span class="hljs-keyword">const</span> asyncTree = [
|
|
{name: <span class="hljs-string">"pNode 01"</span>, key: <span class="hljs-string">"0-0"</span>},
|
|
];
|
|
|
|
<span class="hljs-keyword">const</span> generateTreeNodes = () => {
|
|
<span class="hljs-keyword">const</span> arr = [
|
|
{name: <span class="hljs-string">"伯约"</span>, key: <span class="hljs-string">"0-0-0"</span>},
|
|
];
|
|
<span class="hljs-keyword">return</span> arr;
|
|
}
|
|
|
|
<span class="hljs-keyword">const</span> TreeDemo = React.createClass({
|
|
timeout(duration = <span class="hljs-number">0</span>) {
|
|
<span class="hljs-keyword">return</span> <span class="hljs-keyword">new</span> <span class="hljs-built_in">Promise</span>((resolve, reject) => {
|
|
setTimeout(resolve.bind(<span class="hljs-keyword">this</span>), duration);
|
|
})
|
|
},
|
|
getInitialState() {
|
|
<span class="hljs-keyword">return</span> {
|
|
treeData: []
|
|
};
|
|
},
|
|
componentDidMount() {
|
|
<span class="hljs-keyword">this</span>.timeout(<span class="hljs-number">1000</span>).then(() => {
|
|
<span class="hljs-keyword">this</span>.setState({
|
|
treeData: asyncTree
|
|
});
|
|
<span class="hljs-keyword">return</span> asyncTree;
|
|
});
|
|
},
|
|
handleSelect(info) {
|
|
<span class="hljs-built_in">console</span>.log(<span class="hljs-string">'selected'</span>, info);
|
|
},
|
|
handleDataLoaded(treeNode) {
|
|
<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.timeout(<span class="hljs-number">1000</span>).then(() => {
|
|
<span class="hljs-keyword">const</span> child = generateTreeNodes();
|
|
<span class="hljs-keyword">const</span> treeData = [...this.state.treeData];
|
|
treeData.forEach((item) => {
|
|
<span class="hljs-keyword">if</span> (item.key === treeNode.props.eventKey) {
|
|
item.children = child;
|
|
}
|
|
});
|
|
<span class="hljs-keyword">this</span>.setState({treeData});
|
|
<span class="hljs-keyword">return</span> child;
|
|
});
|
|
},
|
|
render() {
|
|
<span class="hljs-keyword">const</span> loop = (data) => {
|
|
<span class="hljs-keyword">return</span> data.map((item) => {
|
|
<span class="hljs-keyword">if</span> (item.children) {
|
|
<span class="hljs-keyword">return</span> <span class="xml"><span class="hljs-tag"><<span class="hljs-title">TreeNode</span> <span class="hljs-attribute">title</span>=<span class="hljs-value">{item.name}</span> <span class="hljs-attribute">key</span>=<span class="hljs-value">{item.key}</span>></span>{loop(item.children)}<span class="hljs-tag"></<span class="hljs-title">TreeNode</span>></span>;</span>
|
|
} <span class="hljs-keyword">else</span> {
|
|
<span class="hljs-keyword">return</span> <span class="xml"><span class="hljs-tag"><<span class="hljs-title">TreeNode</span> <span class="hljs-attribute">title</span>=<span class="hljs-value">{item.name}</span> <span class="hljs-attribute">key</span>=<span class="hljs-value">{item.key}</span>></span><span class="hljs-tag"></<span class="hljs-title">TreeNode</span>></span>;</span>
|
|
}
|
|
})
|
|
};
|
|
<span class="hljs-keyword">const</span> parseTreeNode = data => loop(data);
|
|
<span class="hljs-keyword">let</span> treeNodes = parseTreeNode(<span class="hljs-keyword">this</span>.state.treeData);
|
|
<span class="hljs-keyword">return</span> (
|
|
<span class="xml"><span class="hljs-tag"><<span class="hljs-title">Tree</span> <span class="hljs-attribute">onSelect</span>=<span class="hljs-value">{this.handleSelect}</span> <span class="hljs-attribute">onDataLoaded</span>=<span class="hljs-value">{this.handleDataLoaded}</span> <span class="hljs-attribute">showLine</span>=<span class="hljs-value">{false}</span>></span>
|
|
{treeNodes}
|
|
<span class="hljs-tag"></<span class="hljs-title">Tree</span>></span>
|
|
)</span>
|
|
}
|
|
})
|
|
|
|
ReactDOM.render(<span class="xml"><span class="hljs-tag"><<span class="hljs-title">TreeDemo</span> /></span>, document.getElementById('components-tree-demo-dynamic'));</span></code></pre></div>
|
|
</div>
|
|
<div class="code-box-meta markdown">
|
|
<div class="code-box-title">
|
|
<a href="#demo-dynamic">异步数据加载</a>
|
|
</div>
|
|
<p>异步加载数据</p>
|
|
<span class="collapse anticon anticon-circle-o-right" unselectable="none" style="-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;"></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="api-container markdown"></div>
|
|
</section>
|
|
|
|
</div><footer id="footer">
|
|
<ul>
|
|
<li>
|
|
<h2>GitHub</h2>
|
|
<a target="_blank "href="https://github.com/ant-design/ant-design">仓库</a>
|
|
<a target="_blank" href="https://github.com/ant-design/ant-design/tree/master/style">样式</a>
|
|
<a target="_blank" href="https://github.com/ant-design/antd-bin">开发工具</a>
|
|
</li>
|
|
<li>
|
|
<h2>关于我们</h2>
|
|
<a href="https://github.com/alipay/x/issues">博客 - Ant UED</a>
|
|
</li>
|
|
<li>
|
|
<h2>联系我们</h2>
|
|
<a target="_blank" href="https://github.com/ant-design/ant-design/issues">反馈和建议</a>
|
|
<a target="_blank" href="https://gitter.im/ant-design/ant-design">讨论</a>
|
|
<a target="_blank" href="https://github.com/ant-design/ant-design/issues/new?title=请填写简洁有效的标题&body=**问题描述**%0A%0A(描述一下问题)%0A%0A**发生环境**%0A%0A- antd 版本:%0A- 操作系统及版本:%0A- 浏览器及版本:%0A- 在线演示地址:%0A%0A**重现步骤**%0A%0A1. ...%0A2. ...%0A">报告 Bug</a>
|
|
</li>
|
|
<li>
|
|
<h3>©2015 蚂蚁金服体验技术部出品</h3>
|
|
<h3>文档版本:<span id="versions-select"></span></h3>
|
|
</li>
|
|
</ul>
|
|
</footer>
|
|
<script src="https://t.alipayobjects.com/images/rmsweb/T1AmXhXg0kXXXXXXXX.js" data-no-instant></script>
|
|
<script data-no-instant>
|
|
InstantClick.on('change', function() {
|
|
InstantClickChangeFns.forEach(function(fn) {
|
|
fn();
|
|
});
|
|
});
|
|
InstantClick.init();
|
|
</script>
|
|
</body>
|
|
</html> |