React-dnd: рдЦрд╛рд▓реА рд▓рдХреНрд╖реНрдп рдЖрдИрдбреА рдХреЗ рд╕рд╛рде isOver рдореЗрдВ рдХреНрд░реИрд╢ рд╣реЛ рд░рд╣рд╛ рд╣реИ

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

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

рдЕрдм v7.1.0 рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗ, рдореБрдЭреЗ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ

Uncaught TypeError: Cannot read property '0' of undefined

monitor.isOver() рдореЗрдВ collect рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░ рдХреЙрд▓ рдХрд░реЗрдВред
рдХрд┐рд╕реА рддрд░рд╣, рдпрд╣ рджреЗрдЦрддрд╛ рд╣реИ рдХрд┐ рдбреНрд░реЙрдк рд▓рдХреНрд╖реНрдп рдХреЛ рд╣рдЯрд╛ рджрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рднреА рдХрд▓реЗрдХреНрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдПрдХ рдмрд╛рд░ рдФрд░ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ( targetId рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИ)ред

рджрд┐рд▓рдЪрд╕реНрдк

  • 6.0.0 рд╡рд╛рдкрд╕ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд░рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╣реЛ рдЧрдпрд╛ред
  • рд╕рд╛рде рд╣реА, рдореЗрд░реЗ рдХреЙрд▓рдмреИрдХ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдПрдХ рдЫреЛрдЯрд╛ setTimeout рд░реИрдкрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреНрд░реЙрдк рд▓рдХреНрд╖реНрдп рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛, рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ред

рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?

рдкреНрд░рдЬрдирди рдХрд░рдирд╛
рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрджрдо:

  1. рдбреНрд░реЙрдк рд▓рдХреНрд╖реНрдп рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ, monitor.isOver() рдореЗрдВ collect рдХреЙрд▓ рдХрд░реЗрдВ
  2. рд▓рдХреНрд╖реНрдп рдореЗрдВ, drop(...) рдЕрдВрджрд░ рдПрдХ рдХреНрд░рд┐рдпрд╛ рднреЗрдЬреЗрдВ рдЬреЛ рдбреНрд░реЙрдк рд▓рдХреНрд╖реНрдп рдХреЛ рд╣рдЯрд╛рддрд╛ рд╣реИ
  3. рддреНрд░реБрдЯрд┐ рджреЗрдЦреЗрдВ

рдЕрдкреЗрдХреНрд╖рд┐рддреН рд╡реНрдпрд╡рд╣рд╛рд░
isOver рд╕рд╛рде рдХреЛрдИ рд╕рдордп рд╕рдВрдмрдВрдзреА рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдбреНрд░реЙрдк рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЛ рддреБрд░рдВрдд рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ
bildschirmfoto 2019-03-07 um 00 58 04

рдбреЗрд╕реНрдХрдЯреЙрдк (рдХреГрдкрдпрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдкреВрд░рд╛ рдХрд░реЗрдВ):

  • рдУрдПрд╕: рдУрдПрд╕ рдПрдХреНрд╕
  • рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреНрд░реЛрдо
  • рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-dnd / html5 рдмреИрдХрдПрдВрдб 7.1.0

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

рдпрд╣ рдЖрдЬ рдПрдХ рд╡рд┐рдЬреНрдЮрдкреНрддрд┐ рдореЗрдВ cfrank рдХреЗ рдкреАрдЖрд░ рджреНрд╡рд╛рд░рд╛ рддрдп рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП

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

рд╡рд╣реА рдореБрджреНрджрд╛

рдореИрдВрдиреЗ рдЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА https://github.com/react-dnd/react-dnd/commit/0feb250b7ee90483e31f3bc159ebf946980d53a7#diff -ac418ba19283aec1fb0b70e6570c5613 рдФрд░ рд╣рд▓ рдХрд┐рдпрд╛ ..ред

рд╡рд╣реА рдореБрджреНрджрд╛ред
рдлрд┐рдХреНрд╕ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рд╣реИред
v7.0.2 . рдкрд░ рд╡рд╛рдкрд╕ рд▓рд╛рдпрд╛ рдЧрдпрд╛

рдкреБрд╖реНрдЯрд┐ рдХреА рдЧрдИ рдХрд┐ рд╣рдо рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ - 7.0.2 рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдареАрдХ рд╣реЛ рдЬрд╛рддреА рд╣реИ

рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реЛ рд░рд╣рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ 0feb250b7ee90483e31f3bc159ebf946980d53a7 рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд▓рдХреНрд╖реНрдп рдЖрдИрдбреА рдХреЛ undefined рд╣реЛрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗ рд░рд╣рд╛ рд╣реИ рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдиреЗ рднреА isOverTarget рд▓рд┐рдП рдЙрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд╕рд╛рде рдкреАрдЖрд░ рдХреА рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХреА рд╣реИ

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЗрд╕рдХрд╛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╣реИ:

public isOverTarget(targetId: string, options = { shallow: false })

рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд рдЬреЛ рдЙрд╕ рдЬрдирд╕рдВрдкрд░реНрдХ рдореЗрдВ рдмрджрд▓ рдЧрдП рдЬреЛ targetId / sourceId рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ

targetId: string | undefined
sourceId: string | undefined

рдФрд░ рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:

if (!targetId) {
    return false;
}

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди targetId undefined рд╣реЛрдиреЗ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛ рд╣реЛрдЧрд╛: https://github.com/mattkrick/react-dnd/blob/aafcf7d67f8b3a2035b561e97b7874e1064447e4/packages/dnd-core/src /DragDropMonitorImpl.ts#L128

рдпрд╣ рдЖрдЬ рдПрдХ рд╡рд┐рдЬреНрдЮрдкреНрддрд┐ рдореЗрдВ cfrank рдХреЗ рдкреАрдЖрд░ рджреНрд╡рд╛рд░рд╛ рддрдп рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП

рдЕрджреНрднреБрдд, рджреЛрд╕реНрддреЛрдВ, рдзрдиреНрдпрд╡рд╛рдж @cfrank

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

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

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

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

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

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

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