рдЬрдм рдХреЛрдИ рд╕реНрд░реЛрдд рдШрд╕реАрдЯрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдбреНрд░реЙрдк рд▓рдХреНрд╖реНрдп рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдФрд░ рдЬрдм рдХреБрдЫ рднреА рдирд╣реАрдВ рдЦреАрдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рд╕рднреА рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЛ рдЫрд┐рдкрд╛рддреЗ рд╣реИрдВред
рд╣рд╛рд▓рд╛рдБрдХрд┐ 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 рдХрд░реВрдБрдЧрд╛!
рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдЖрдк рдЕрдкрдиреЗ рдореМрдЬреВрджрд╛ рд╡рд┐рдЬреЗрдЯрдЯрд╛рд░рдЧреЗрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рднреАрддрд░ рдПрдХ рд╣реЛрд╡рд░ () рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдореЗрдВ рд╕рд┐рдЧреНрдиреЗрдЪрд░ hover(props, monitor, component)
, рдЬрд┐рд╕реЗ рдЖрдк рдЕрдкрдиреА рдЗрдЪреНрдЫрд╛рдиреБрд╕рд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЖрдк monitor.getItem()
рдЪреЗрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдЧрд░ рдпрд╣ рдореМрдЬреВрдж рд╣реИ, рддреЛ рдЖрдк рдЦреАрдВрдЪ рд░рд╣реЗ рд╣реИрдВред рдирд╣реАрдВ рддреЛ рдирд╣реАрдВред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдЪреВрдВрдХрд┐ рд╕реНрд░реЛрдд рдХреЛ рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рдПрдХ рдЖрдЗрдЯрдо рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ
isDragging
рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рд╕рдВрд╕реНрдХрд░рдг рдЗрд╕ рддрд░рд╣ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛:@wdhorton рд╕рдВрджрд░реНрдн рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рдЗрд╕реЗ ckeck рдХрд░реВрдБрдЧрд╛!