2017-10-30 7 views
1

React 15와 Dragula 3.7.2를 사용하여 멋진 drag'n Drop을 만들었지 만, 제작을 위해 내 응용 프로그램을 번들링하면 전체 dnd가 작동하지 않습니다. 단일 요소를 들어 올릴 수 있지만 컨테이너를 찾을 수 없다는 것을 제외하고는React NPM 패키지 (Dragula)는 개발 중이지만 생산 중이 아닙니다.

저는 현재 componentDidMount에 작성한 drake 인스턴스에 대한 참조로 내 컨테이너를 할당하고 있습니다.

나는 여러 개의 EventListener를 drake 인스턴스에 할당했지만 발사하는 것은 'drag'-eventListener'뿐입니다. 나는 거기에 드레이크 인스턴스를 console.logged 제대로

나는 또한 dragula 번들과 축소를 오류가있을 수 있다고 생각했고 그래서 내가 CDN

의 버전을 사용

을 할당 내 모든 관련 컨테이너를 보았다
class ProcessGridDrag extends React.Component { 
 
    constructor() { 
 
    super(); 
 
    this.dragContext = null; 
 
    this.dragContainers = []; 
 
    } 
 

 
    componentDidMount() { 
 
    // eslint-disable-next-line no-undef 
 
    this.drake = dragula(this.dragContainers, options); 
 
    console.log('didMount'); 
 
    console.log(this.drake.containers); 
 
    this.drake.on('drop', this.onDropTile); 
 
    this.drake.on('out', this.onOutContainer); 
 
    this.drake.on('over', console.log); 
 
    this.drake.on('drag',() => { 
 
     debugger; 
 
     console.log(this.drake); 
 
    }); 
 
    this.drake.on('shadow', console.log); 
 
    // Override for touchmove for correct behaviour on iPad 
 
    window.addEventListener('touchmove',() => {}); 
 
    } 
 

 
    componentWillUnmount() { 
 
    this.dragContainers = []; 
 
    console.log('will Unmount'); 
 
    this.drake.containers = []; 
 
    this.drake.off('drop', this.onDropTile); 
 
    this.drake.off('out', this.onOutContainer); 
 
    this.dragContext = null; 
 
    this.drake.destroy(); 
 
    } 
 
    
 
    // This one is passed down to components which should act as a drag container 
 
    dragulaDecorator = componentBackingInstance => { 
 
    if (
 
     componentBackingInstance && 
 
     this.dragContainers.indexOf(componentBackingInstance) === -1 
 
    ) { 
 
     this.dragContainers.push(componentBackingInstance); 
 
    } 
 
    };

webpack.config.prod : https://pastebin.com/BLu2hmmv webpack.config.dev : https://pastebin.com/3wczNisj

답변

1

내가했다 내 CSS 문제. 드래그 한 요소의 상단 값을 덮어 썼습니다.

생산에 다른 LoadOrder 때문에이 문제가 발생했습니다