<p>рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдбреАрдПрдирдбреА рдПрдХ рдЕрдирдорд╛рдЙрдВрдЯ рдХрд┐рдП рдЧрдП рдШрдЯрдХ рдореЗрдВ рдХреЙрд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг `рдЕрдирдХреЙрдЯ рдПрд░рд░: рдПрдХ рд╡реИрдз рд▓рдХреНрд╖реНрдп рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрд╛`</p>

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

рдмрдЧ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдбреАрдПрдирдбреА рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдЧреНрд░рд╣ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдЬреЛ рдПрдХ рдШрдЯрдХ рдХреЛ рдЕрдирдорд╛рдЙрдВрдЯ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ, рдлрд┐рд░ рдЕрдирдорд╛рдЙрдВрдЯ рдХрд┐рдП рдЧрдП рдШрдЯрдХ рдкрд░ рдПрдХ рдФрд░ рд╕рдВрдЧреНрд░рд╣() рдХреЙрд▓ рдХрд░реЗрдВ, рдЬрд┐рд╕рд╕реЗ рдПрдХ рдЕрдирдХрд╣реА рддреНрд░реБрдЯрд┐ "рдПрдХ рд╡реИрдз рд▓рдХреНрд╖реНрдп рдЖрдИрдбреА рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрд╛"ред

Redux рдСрди рдЗрдЯреНрд╕ рдбрд┐рд╕реНрдкреИрдЪ () рдмреИрдХрдПрдВрдб рдбреНрд░реИрдЧ рдПрдВрдб рдбреНрд░реЙрдк рдЗрд╡реЗрдВрдЯреНрд╕ рд╕рднреА рд╢реНрд░реЛрддрд╛рдУрдВ рдХреЛ рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдмреНрдб рдЗрд╡реЗрдВрдЯреНрд╕ рдХреА рдПрдХ рдХреЙрдкреА рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдмрд░реНрд╕ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рддреЗ рд╕рдордп рд░реЗрдбрдХреНрд╕ рд╕рдмреНрд╕рдХреНрд░рд┐рдкреНрд╢рди рдХреЛ рдЕрдирд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдм рдХрд┐рдП рдмрд┐рдирд╛ рд╣рдореЗрд╢рд╛ рдЙрдиреНрд╣реЗрдВ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ (рджреЗрдЦреЗрдВ https://stackoverflow.com/questions /рекрейрейрелремрежреореж/рд░реЗрдбрдХреНрд╕-рдЕрдирд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдм-рдЗрди-рдХрдВрдкреЛрдиреЗрдВрдЯрд╡рд┐рд▓рдЕрдирдорд╛рдЙрдВрдЯ-рд╕реНрдЯрд┐рд▓-рдХреЙрд▓реНрд╕-рд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдм-рдХреЙрд▓рдмреИрдХ)ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЕрдЧрд░ 'рдПрдВрдбрдбреНрд░реИрдЧ' рдПрдЪрдЯреАрдПрдордПрд▓ 5 рдбреНрд░реИрдЧ рдЗрд╡реЗрдВрдЯ рдХреА рддрд░рд╣ рдХреБрдЫ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдбреАрдПрдирдбреА/src/decorateHandler.tsx:handleChange() рдореЗрдВ рд╣реИрдВрдбрд▓ рдЪреЗрдВрдЬ() рдореЗрдВ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдкрд╣рд▓рд╛ рд╕рдВрдЧреНрд░рд╣() рдХреЙрд▓ рдПрдХ рдШрдЯрдХ рдХреА рдЕрдирдорд╛рдЙрдВрдЯ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ, рдмрд╛рдж рдХреЗ рдЕрдирдорд╛рдЙрдВрдЯ рдХрд┐рдП рдЧрдП рдШрдЯрдХ рдореЗрдВ рдЙрд╕реА рдШрдЯрдирд╛ рдХреА рдмрд╛рдж рдХреА рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдореЗрдВ рдЗрд╕рдХреА рдХрд▓реЗрдХреНрдЯ () рдХреЙрд▓ рдЯреНрд░рд┐рдЧрд░ рд╣реЛ рд╕рдХрддреА рд╣реИред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп 'рдПрдХ рд╡реИрдз рд▓рдХреНрд╖реНрдп рдЦреЛрдЬрдиреЗ рдХреА рдЙрдореНрдореАрдж' рдЯреНрд░рд┐рдЧрд░ рд╣реЛ рдЬрд╛рддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдШрдЯрдХ рдХреЛ рд╡реИрдз рд▓рдХреНрд╖реНрдп рдЖрдИрдбреА рдХреА рд░рдЬрд┐рд╕реНрдЯреНрд░реА рд╕реЗ рд╡реИрдз рд░реВрдк рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдПрдХ рдЕрдирдорд╛рдЙрдВрдЯ рдШрдЯрдХ рдореЗрдВ рдХреЙрд▓ рдХрд░ рд░рд╣реА рд╣реИред

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдХреНрд░рдордмрджреНрдз-рдкреЗрдбрд╝ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп рдореИрдВрдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреА рдЦреЛрдЬ рдХреА, рдЬреЛ рдореЗрд░реЗ рдРрдк рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдбреАрдПрдирдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдФрд░ рдПрдХ рдкреБрди: рдмрдирд╛рдиреЗ рдпреЛрдЧреНрдп рдкрд░реАрдХреНрд╖рдг рдХреЗрд╕ рдпрд╣рд╛рдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ: https://github.com/frontend-collective/react-sortable-tree/issues/490ред рдбреНрд░реИрдЧ рдЯрд╛рд░реНрдЧреЗрдЯ рдХреЗ рдмрд╛рд╣рд░ рдбреНрд░реИрдЧрд╕реЛрд░реНрд╕ рдЬрд╛рд░реА рдХрд░рдХреЗ рд░рджреНрдж рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рдбреНрд░реИрдЧ рдПрдВрдб рдбреНрд░реЙрдк рд╣рд░ рдмрд╛рд░ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред

рдЕрдирдХреИрдкреНрдб рдПрд░рд░ рдФрд░ рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рдиреАрдЪреЗ рдЪрд┐рдкрдХрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдХрдиреЗрдХреНрдЯ рдлрд╝рдВрдХреНрд╢рди рдореЙрдирд┐рдЯрд░ рдореЗрдВ рдХреЙрд▓ рдХрд░ рд░рд╣рд╛ рд╣реИред рдХреИрдирдбреНрд░реЙрдк () рдЬреЛ рдЕрдирдорд╛рдЙрдВрдЯ рдШрдЯрдХреЛрдВ рдкрд░ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред
browser.js:38 рдЕрдирдХреИрдкреНрдб рдЗрдирд╡реЗрд░рд┐рдПрдВрдЯ рдЙрд▓реНрд▓рдВрдШрди: рдПрдХ рд╡реИрдз рд▓рдХреНрд╖реНрдп рдорд┐рд▓рдиреЗ рдХреА рдЙрдореНрдореАрдж рд╣реИредрдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдкрд░ (https://xzoq6xprlz.codesandbox.io/node_modules/invariant/browser.js:38:15)DragDropMonitorImpl.canDropOnTarget рдкрд░ (https://xzoq6xprlz.codesandbox.io/node_modules/dnd-core/lib/cjs/DragDropMonitorImpl.js:67:9)
DropTargetMonitorImpl.canDrop рдкрд░ (https://xzoq6xprlz.codesandbox.io/node_modules/react-dnd/lib/cjs/DropTargetMonitorImpl.js:24:41)
nodeDropTargetPropInjection рдкрд░ (https://xzoq6xprlz.codesandbox.io/node_modules/react-sortable-tree/dist/index.cjs.js:2367:28)
DragDropContainer.getCurrentState рдкрд░ (https://xzoq6xprlz.codesandbox.io/node_modules/react-dnd/lib/cjs/decorateHandler.js:116:29)
DragDropContainer._this.handleChange рдкрд░ (https://xzoq6xprlz.codesandbox.io/node_modules/react-dnd/lib/cjs/decorateHandler.js:45:39)
рд╣реИрдВрдбрд▓ рдЪреЗрдВрдЬ рдкрд░ (https://xzoq6xprlz.codesandbox.io/node_modules/dnd-core/lib/cjs/DragDropMonitorImpl.js:27:21)
рдкреНрд░реЗрд╖рдг рдкрд░ (https://xzoq6xprlz.codesandbox.io/node_modules/redux/lib/redux.js:220:7)
Object.eval рдкрд░ [endDrag рдХреЗ рд░реВрдк рдореЗрдВ] (https://xzoq6xprlz.codesandbox.io/node_modules/dnd-core/lib/cjs/DragDropManagerImpl.js:67:21)
HTML5Backend.handleTopDragEndCapture рдкрд░ (https://xzoq6xprlz.codesandbox.io/node_modules/react-dnd-html5-backend/lib/cjs/HTML5Backend.js:145:31)
``

рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣рд▓

рдЕрдирдорд╛рдЙрдВрдЯ рдШрдЯрдХреЛрдВ рдореЗрдВ рдХреЙрд▓ рдХрд░рдирд╛ рд╢рд╛рдпрдж рд╕рд╣реА рд╡реНрдпрд╡рд╣рд╛рд░ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-dnd/src/decorateHandler.tsx:handleChange рдореЗрдВ рдПрдХ рдХрдерди рдЬреЛрдбрд╝рд╛ рд╣реИ рдЬреЛ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ рдпрджрд┐ рд╕рдЬрд╛рд╡рдЯрд╣реИрдВрдбрд▓рд░ рдкрд╣рд▓реЗ рд╣реА рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рдкреНрдд рдХрд░ рдЪреБрдХрд╛ рд╣реИред рдЕрдВрддрд░ рд╕рдВрд▓рдЧреНрдиред

diff --git a/packages/react-dnd/src/decorateHandler.tsx b/packages/react-dnd/src/decorateHandler.tsx
index 85385ec..bcd149e 100644
--- a/packages/react-dnd/src/decorateHandler.tsx
+++ b/packages/react-dnd/src/decorateHandler.tsx
@@ -159,6 +159,15 @@ export default function decorateHandler<Props, CollectedProps, ItemIdType>({
                }

                public handleChange = () => {
+                       if (this.disposable.isDisposed) {
+                               console.log("in handleChange")
+                               //because redux takes a snapshot of all subscribers to 
+                               //events when it starts dispatch, it is still possible to call into this even after 
+                               //the subscription has been unsubscribed
+                               //to prevent against calling into unmounted objects, return immediately
+
+                               return
+                       }
                        const nextState = this.getCurrentState()
                        if (!shallowEqual(nextState, this.state)) {
                                this.setState(nextState)

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

@ mx2323 рдХреНрдпрд╛ рдЗрд╕реЗ рдзрдХреНрдХрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛? рднрд▓реЗ рд╣реА рдпрд╣ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдХреНрд░рдордмрджреНрдз-рдкреЗрдбрд╝ рдерд╛, рдлрд┐рд░ рднреА рдирд╡реАрдирддрдо рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдбреАрдПрдирдбреА рдЕрдкрдбреЗрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░рддреАрдХреНрд╖рд╛ рдореЗрдВ рд╣реИ

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

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

@ mx2323 рдХреНрдпрд╛ рдЗрд╕реЗ рдзрдХреНрдХрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛? рднрд▓реЗ рд╣реА рдпрд╣ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдХреНрд░рдордмрджреНрдз-рдкреЗрдбрд╝ рдерд╛, рдлрд┐рд░ рднреА рдирд╡реАрдирддрдо рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдбреАрдПрдирдбреА рдЕрдкрдбреЗрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░рддреАрдХреНрд╖рд╛ рдореЗрдВ рд╣реИ

рдореИрдВрдиреЗ рдЗрд╕реЗ рдзрдХреНрдХрд╛ рджреЗрдирд╛ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ред

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

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

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

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

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

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

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