3

私はreact-dnd documentationに従っているreact dndプロジェクトに取り組んでいます。すべて正常に動作していますが、ドラッグ中にスクロールできません。

アイテムをドラッグしていて、最後のドロップ可能なソースに到達するとスクロール バーが必要になり、自動スクロールしてそこにアイテムを配置できるようになります。

誰かがこれを行う方法を知っている場合は、私と共有してください。とても感謝しています。

4

3 に答える 3

3

React Dnd は、役に立つDragLayerコンポーネントを提供します。

スクロール可能なコンポーネント内に DragLayer を追加し、スクロール条件が満たされたときにコールバックを呼び出すことができます。

カスタム DragLayer 内で onMouseOver イベントをリッスンし、コールバックをスローして、親/スクロール可能なコンポーネントのスクロールを設定できる div を追加することもできます。

@dragLayer( monitor => ({
   isDragging   : monitor.isDragging(),
}) )
class DragLayer extends Component {
  render() {
   if(!this.props.isDragging) {
     return null;
   }
   return <div onMouseOver={this.props.onScrollOver}></div>
  }

}

class ScrollableContainer extends Component {
....


  _doScroll(event) { 
    const scrollTaget = this._scrollTarget;
    scrollTarget.scrollTop++; //Or You can add animations here
  }

  render() {

   ...return <div style={{overflow:'auto'}}>
      <DragLayer onScrollOver={this._doScroll}/> 
     </div>;
  }
 }
于 2016-12-03T01:21:31.783 に答える