React-dnd: рдбреНрд░реИрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдШрдЯрдХ (рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕) рдХреЗ рдЕрдВрджрд░ рдкрд╛рда рдЗрдирдкреБрдЯ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 7 рдЕрдЧре░ 2015  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: react-dnd/react-dnd

рдШрдЯрдХреЛрдВ рдХреЗ рдЕрдВрджрд░ рдкрд╛рда рдЗрдирдкреБрдЯ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ рдЬреЛ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдореЗрдВ HTML5 рд╡рд┐рд╢реЗрд╖рддрд╛ draggable рд╕реЗрдЯ рд╕реЗ true ( рдЗрд╕ рдЬреНрдЮрд╛рдд рдмрдЧ рдХреЗ рдХрд╛рд░рдг ) рд╣реИрдВред рдореИрдВ draggable false onFocus рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рд╕реЗрдЯ рдХрд░рдиреЗ рдФрд░ true onBlur рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рд╡рд╛рдкрд╕ рд╕реЗрдЯ рдХрд░рдиреЗ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдБ (рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╣рд╛рдБ рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЧрдИ рд╣реИ ), рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣ рдХреЗ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдбрдВрдб рдХрд╛ рдХреЛрдИ рд╕рдорд░реНрдерди рдирд╣реАрдВ рд╣реИ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛ рддреБрд░рдВрдд true рд╡рд╛рдкрд╕ рд╕реЗрдЯ рд╣реИред

рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдореЗрдВ рдЗрд╕ рдмрдЧ рдкрд░ рдкреНрд░рдЧрддрд┐ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рдХреНрдпрд╛ рдЗрд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдбрдВрдб рдореЗрдВ рдПрдХ рд╢рд░реНрдо рдХреА рдмрд╛рдд рд╣реИ? рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЕрджреНрдпрддрди рдХрд░реВрдБрдЧрд╛ рдЕрдЧрд░ рдореИрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реВрдБред

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

рдЖрдкрдХреЛ onFocus рдФрд░ onBlur рдореЗрдВ рдПрдХ рд╕реНрдЯреЗрдЯ рд╡реИрд░рд┐рдПрдмрд▓ рдЯреЙрдЧрд▓ рдХрд░рдХреЗ рдЗрд╕ рдмрдЧ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдЖрдкрдХреЗ render рдлрд╝рдВрдХреНрд╢рди рдХреЛ _not_ рдкрд░ рдХреЙрд▓ рдХрд░рдХреЗ connectDragSource() рдЗрдирдкреБрдЯ рдореЗрдВ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП :

render() {
  const element = <div><textarea onFocus=... /></div>;
  return this.state.editing ? element : this.props.connectDragSource(element);
}

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

рдЗрд╕рдХрд╛ рдореВрд▓ # 256 рд╣реЛ рд╕рдХрддрд╛ рд╣реИ

рдЕрднреА рдХреЗ рд▓рд┐рдП рдореИрдВ рдПрдХ рдХрд╛рдВрдЯреЗ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рдореБрдЭреЗ рд╕реАрдзреЗ рдЕрдкрдиреЗ рдРрдк рдореЗрдВ draggable рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреБрдЫ рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╡реНрдпрд╕реНрдд рд╣реВрдВред
рдпрджрд┐ рдЗрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдкреАрдЖрд░ рдЖрдкрдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рднреА рдмрддрд╛рдПрдВ: https://github.com/gaearon/react-dnd/pss

рдХреГрдкрдпрд╛ рдпрд╣ рди рднреВрд▓реЗрдВ рдХрд┐ HTML5 рдмреИрдХрдПрдВрдб рдХреЗрд╡рд▓ рдПрдХ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИред
рдЖрдк рдПрдирдкреАрдПрдо рдкрд░ рдЕрдкрдирд╛ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдпрд╣ рдПрдХ рдПрдХрд▓ рдлрд╛рдЗрд▓ рд╣реИ) рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдмрд╛рдХреА рд╕рднреА рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рд░реЗрдкреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рдЖрдкрдХреЛ onFocus рдФрд░ onBlur рдореЗрдВ рдПрдХ рд╕реНрдЯреЗрдЯ рд╡реИрд░рд┐рдПрдмрд▓ рдЯреЙрдЧрд▓ рдХрд░рдХреЗ рдЗрд╕ рдмрдЧ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдЖрдкрдХреЗ render рдлрд╝рдВрдХреНрд╢рди рдХреЛ _not_ рдкрд░ рдХреЙрд▓ рдХрд░рдХреЗ connectDragSource() рдЗрдирдкреБрдЯ рдореЗрдВ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП :

render() {
  const element = <div><textarea onFocus=... /></div>;
  return this.state.editing ? element : this.props.connectDragSource(element);
}
рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

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

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

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

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

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

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