React-dnd: рдПрдХ `DropTarget` рдХреЗ рдЕрдВрджрд░ `Dragging` рдХреЛ рдХреИрд╕реЗ рдЬрд╛рдиреЗрдВ?

рдХреЛ рдирд┐рд░реНрдорд┐рдд 1 рдлрд╝рд░ре░ 2016  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: react-dnd/react-dnd

рдЬрдм рдХреЛрдИ рд╕реНрд░реЛрдд рдШрд╕реАрдЯрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдбреНрд░реЙрдк рд▓рдХреНрд╖реНрдп рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдФрд░ рдЬрдм рдХреБрдЫ рднреА рдирд╣реАрдВ рдЦреАрдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рд╕рднреА рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЛ рдЫрд┐рдкрд╛рддреЗ рд╣реИрдВред
рд╣рд╛рд▓рд╛рдБрдХрд┐ isDragging рдореЙрдирд┐рдЯрд░ рдХреЗрд╡рд▓ рд╕реНрд░реЛрдд рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
isDragging DropTarget рдЕрдВрджрд░ рдЬрд╛рдирдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛?

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЪреВрдВрдХрд┐ рд╕реНрд░реЛрдд рдХреЛ рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рдПрдХ рдЖрдЗрдЯрдо рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ isDragging рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рд╕рдВрд╕реНрдХрд░рдг рдЗрд╕ рддрд░рд╣ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛:

import React from 'react';
import { ItemTypes } from '../../constants';
import { DropTarget } from 'react-dnd';

const widgetTarget = {
  drop(props) {
    // moveKnight(props.x, props.y);
  }
};

function collect(connect, monitor) {
  const item = monitor.getItem();
  return {
    connectDropTarget: connect.dropTarget(),
    isOver: monitor.isOver(),
    item: item,
    isDragging: !!item,
  };
}

@DropTarget(ItemTypes.WIDGET, widgetTarget, collect)
export default class WidgetHolder extends React.Component {
  render() {
    const {
      connectDropTarget,
      isDragging,
      isOver,
      item
    } = this.props;
    const style = {
      width: '100%',
      visibility: isDragging? 'visible': 'hidden',
      backgroundColor: isOver? 'green': 'inherit',
    };
    return connectDropTarget(
      <div style={style}>
        Drop here
      </div>
    );
  }
};

@wdhorton рд╕рдВрджрд░реНрдн рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рдЗрд╕реЗ ckeck рдХрд░реВрдБрдЧрд╛!

рд╕рднреА 4 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореИрдВ рд╕рд░рд▓ рд╕реЙрд░реНрдЯреЗрдмрд▓ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдХреА рдЬрд╛рдВрдЪ рдХрд░реВрдВрдЧрд╛ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдХреБрдЫ рдРрд╕рд╛ рд╣реА рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреЛ рдЙрдиреНрд╣реЛрдВрдиреЗ рдХрд╛рд░реНрдбрдЯрд╛рд░реНрдЧ рдореЗрдВ рд╣реЛрд╡рд░ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдерд╛ред

рдЪреВрдВрдХрд┐ рд╕реНрд░реЛрдд рдХреЛ рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рдПрдХ рдЖрдЗрдЯрдо рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ isDragging рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рд╕рдВрд╕реНрдХрд░рдг рдЗрд╕ рддрд░рд╣ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛:

import React from 'react';
import { ItemTypes } from '../../constants';
import { DropTarget } from 'react-dnd';

const widgetTarget = {
  drop(props) {
    // moveKnight(props.x, props.y);
  }
};

function collect(connect, monitor) {
  const item = monitor.getItem();
  return {
    connectDropTarget: connect.dropTarget(),
    isOver: monitor.isOver(),
    item: item,
    isDragging: !!item,
  };
}

@DropTarget(ItemTypes.WIDGET, widgetTarget, collect)
export default class WidgetHolder extends React.Component {
  render() {
    const {
      connectDropTarget,
      isDragging,
      isOver,
      item
    } = this.props;
    const style = {
      width: '100%',
      visibility: isDragging? 'visible': 'hidden',
      backgroundColor: isOver? 'green': 'inherit',
    };
    return connectDropTarget(
      <div style={style}>
        Drop here
      </div>
    );
  }
};

@wdhorton рд╕рдВрджрд░реНрдн рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рдЗрд╕реЗ ckeck рдХрд░реВрдБрдЧрд╛!

рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдЖрдк рдЕрдкрдиреЗ рдореМрдЬреВрджрд╛ рд╡рд┐рдЬреЗрдЯрдЯрд╛рд░рдЧреЗрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рднреАрддрд░ рдПрдХ рд╣реЛрд╡рд░ () рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдореЗрдВ рд╕рд┐рдЧреНрдиреЗрдЪрд░ hover(props, monitor, component) , рдЬрд┐рд╕реЗ рдЖрдк рдЕрдкрдиреА рдЗрдЪреНрдЫрд╛рдиреБрд╕рд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЖрдк monitor.getItem() рдЪреЗрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдЧрд░ рдпрд╣ рдореМрдЬреВрдж рд╣реИ, рддреЛ рдЖрдк рдЦреАрдВрдЪ рд░рд╣реЗ рд╣реИрдВред рдирд╣реАрдВ рддреЛ рдирд╣реАрдВред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

dwjohnston picture dwjohnston  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Vadorequest picture Vadorequest  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

redochka picture redochka  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

dant00ine picture dant00ine  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

dreamcog picture dreamcog  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ