国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

javascript - Le composant Tree d'antd, prend-il en charge les restrictions de glisser-déposer??
ringa_lee
ringa_lee 2017-05-19 10:32:01
0
1
1051

Lorsque je fais glisser le composant Tree, je souhaite empêcher le n?ud parent d'être déplacé au niveau du n?ud enfant, ce qui signifie que seul le n?ud enfant peut être déplacé vers le haut. Cela peut-il être pris en charge par antd??

ringa_lee
ringa_lee

ringa_lee

répondre à tous(1)
洪濤

Le rendu final dépend uniquement de l'apparence des données. La modification des données est sous votre propre contr?le. Qu'elle soit autorisée ou non, il s'agit simplement de savoir si les données changent.

Par exemple, le code suivant, 子節(jié)點 只能放到 第三個 下面,不能放到 第一個 ci-dessous (car c'est ma logique).

import * as React from 'react';
import {BaseComponent} from '../base';
import Tree from 'antd/lib/tree';
const TreeNode = Tree.TreeNode;
import 'antd/lib/tree/style/index.css';


export interface HeaderProps { }
export interface HeaderState { data: any }

export class Header extends BaseComponent<HeaderProps, HeaderState> {
    state = {
        data: [
            {name: '第一個', key: 'a'},
            {name: '第二個', key: 'b',
                children: [
                    {name: '子節(jié)點', key: 'd'}
                ]},
            {name: '第三個', key: 'c'}
        ]
    };

    constructor(props:HeaderProps) {
        super(props);
    }

    onDragEnter(opt){
        console.log(opt, 'x');
    }

    onDrop(opt){
        const fromNode = opt.dragNode.props.eventKey;
        const toNode = opt.node.props.eventKey;
        if(toNode !== 'c'){ return }
        this.state.data[2]['children'] = this.state.data[1]['children'];
        this.state.data[1]['children'] = [];
        this.setState({});
    }

    loop(data){
        return data.map( d => {
            if(d.children && d.children.length){
                return <TreeNode key={d.key} title={d.name}>{this.loop(d.children)}</TreeNode>
            } else {
                return <TreeNode key={d.key} title={d.name}></TreeNode>
            }
        })
    }

    render() {
        return (<p>
            <Tree className="draggable-tree"
                draggable
                onDragEnter={this.onDragEnter.bind(this)}
                onDrop={this.onDrop.bind(this)}>
                {this.loop(this.state.data)}
            </Tree>
        </p>)
    }
}
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal