redux-form: hot reload causing destroy

I’m using webpack-dev-server and I have hot reload working, but my form data gets destroyed because componentWillUnmount is called. From what I can gather from the hot loader demo unmount shouldn’t be called. Is this expected, or have I hooked things up wrong?

Here is the callstack:

destroy (actions.js:23)
(anonymous function) (bindActionData.js:22)
(anonymous function) (bindActionCreators.js:14)
componentWillUnmount (createHigherOrd…mponent.js:115)
ReactCompositeComponentMixin.unmountComponent (ReactCompositeComponent.js:243)
ReactReconciler.unmountComponent (ReactReconciler.js:52)
ReactCompositeComponentMixin.unmountComponent (ReactCompositeComponent.js:246)
ReactReconciler.unmountComponent (ReactReconciler.js:52)
ReactCompositeComponentMixin.unmountComponent (ReactCompositeComponent.js:246)
ReactReconciler.unmountComponent (ReactReconciler.js:52)
ReactCompositeComponentMixin.unmountComponent (ReactCompositeComponent.js:246)
ReactReconciler.unmountComponent (ReactReconciler.js:52)
ReactChildReconciler.unmountChildren (ReactChildReconciler.js:115)
ReactMultiChild.Mixin.unmountChildren (ReactMultiChild.js:398)
ReactDOMComponent.Mixin.unmountComponent (ReactDOMComponent.js:911)
ReactReconciler.unmountComponent (ReactReconciler.js:52)
ReactChildReconciler.unmountChildren (ReactChildReconciler.js:115)
ReactMultiChild.Mixin.unmountChildren (ReactMultiChild.js:398)
ReactDOMComponent.Mixin.unmountComponent (ReactDOMComponent.js:911)
ReactReconciler.unmountComponent (ReactReconciler.js:52)
ReactCompositeComponentMixin.unmountComponent (ReactCompositeComponent.js:246)
ReactReconciler.unmountComponent (ReactReconciler.js:52)
ReactChildReconciler.unmountChildren (ReactChildReconciler.js:115)
ReactMultiChild.Mixin.unmountChildren (ReactMultiChild.js:398)
ReactDOMComponent.Mixin.unmountComponent (ReactDOMComponent.js:911)
ReactReconciler.unmountComponent (ReactReconciler.js:52)
ReactCompositeComponentMixin.unmountComponent (ReactCompositeComponent.js:246)
ReactReconciler.unmountComponent (ReactReconciler.js:52)
ReactCompositeComponentMixin.unmountComponent (ReactCompositeComponent.js:246)
ReactReconciler.unmountComponent (ReactReconciler.js:52)
ReactCompositeComponentMixin.unmountComponent (ReactCompositeComponent.js:246)
ReactReconciler.unmountComponent (ReactReconciler.js:52)
ReactCompositeComponentMixin.unmountComponent (ReactCompositeComponent.js:246)
ReactReconciler.unmountComponent (ReactReconciler.js:52)
ReactCompositeComponentMixin.unmountComponent (ReactCompositeComponent.js:246)
ReactReconciler.unmountComponent (ReactReconciler.js:52)
ReactCompositeComponentMixin._updateRenderedComponent (ReactCompositeComponent.js:567)
ReactCompositeComponentMixin._performComponentUpdate (ReactCompositeComponent.js:544)
ReactCompositeComponentMixin.updateComponent (ReactCompositeComponent.js:473)
ReactCompositeComponent_updateComponent (ReactPerf.js:66)
ReactCompositeComponentMixin.receiveComponent (ReactCompositeComponent.js:405)
ReactReconciler.receiveComponent (ReactReconciler.js:87)
ReactChildReconciler.updateChildren (ReactChildReconciler.js:84)
ReactMultiChild.Mixin._reconcilerUpdateChildren (ReactMultiChild.js:216)
ReactMultiChild.Mixin._updateChildren (ReactMultiChild.js:351)
ReactMultiChild.Mixin.updateChildren (ReactMultiChild.js:326)
ReactDOMComponent.Mixin._updateDOMChildren (ReactDOMComponent.js:871)
ReactDOMComponent.Mixin.updateComponent (ReactDOMComponent.js:700)
ReactDOMComponent.Mixin.receiveComponent (ReactDOMComponent.js:645)
ReactReconciler.receiveComponent (ReactReconciler.js:87)
ReactCompositeComponentMixin._updateRenderedComponent (ReactCompositeComponent.js:562)
ReactCompositeComponentMixin._performComponentUpdate (ReactCompositeComponent.js:544)
ReactCompositeComponentMixin.updateComponent (ReactCompositeComponent.js:473)
ReactCompositeComponent_updateComponent (ReactPerf.js:66)
ReactCompositeComponentMixin.receiveComponent (ReactCompositeComponent.js:405)
ReactReconciler.receiveComponent (ReactReconciler.js:87)
ReactCompositeComponentMixin._updateRenderedComponent (ReactCompositeComponent.js:562)
ReactCompositeComponentMixin._performComponentUpdate (ReactCompositeComponent.js:544)
ReactCompositeComponentMixin.updateComponent (ReactCompositeComponent.js:473)
ReactCompositeComponent_updateComponent (ReactPerf.js:66)
ReactCompositeComponentMixin.receiveComponent (ReactCompositeComponent.js:405)
ReactReconciler.receiveComponent (ReactReconciler.js:87)
ReactCompositeComponentMixin._updateRenderedComponent (ReactCompositeComponent.js:562)
ReactCompositeComponentMixin._performComponentUpdate (ReactCompositeComponent.js:544)
ReactCompositeComponentMixin.updateComponent (ReactCompositeComponent.js:473)
ReactCompositeComponent_updateComponent (ReactPerf.js:66)
ReactCompositeComponentMixin.receiveComponent (ReactCompositeComponent.js:405)
ReactReconciler.receiveComponent (ReactReconciler.js:87)
ReactCompositeComponentMixin._updateRenderedComponent (ReactCompositeComponent.js:562)
ReactCompositeComponentMixin._performComponentUpdate (ReactCompositeComponent.js:544)
ReactCompositeComponentMixin.updateComponent (ReactCompositeComponent.js:473)
ReactCompositeComponent_updateComponent (ReactPerf.js:66)
ReactCompositeComponentMixin.receiveComponent (ReactCompositeComponent.js:405)
ReactReconciler.receiveComponent (ReactReconciler.js:87)
ReactChildReconciler.updateChildren (ReactChildReconciler.js:84)
ReactMultiChild.Mixin._reconcilerUpdateChildren (ReactMultiChild.js:216)
ReactMultiChild.Mixin._updateChildren (ReactMultiChild.js:351)
ReactMultiChild.Mixin.updateChildren (ReactMultiChild.js:326)
ReactDOMComponent.Mixin._updateDOMChildren (ReactDOMComponent.js:871)
ReactDOMComponent.Mixin.updateComponent (ReactDOMComponent.js:700)
ReactDOMComponent.Mixin.receiveComponent (ReactDOMComponent.js:645)
ReactReconciler.receiveComponent (ReactReconciler.js:87)
ReactCompositeComponentMixin._updateRenderedComponent (ReactCompositeComponent.js:562)
ReactCompositeComponentMixin._performComponentUpdate (ReactCompositeComponent.js:544)
ReactCompositeComponentMixin.updateComponent (ReactCompositeComponent.js:473)
ReactCompositeComponent_updateComponent (ReactPerf.js:66)
ReactCompositeComponentMixin.performUpdateIfNecessary (ReactCompositeComponent.js:421)
ReactReconciler.performUpdateIfNecessary (ReactReconciler.js:102)
runBatchedUpdates (ReactUpdates.js:129)
Mixin.perform (Transaction.js:136)
Mixin.perform (Transaction.js:136)
assign.perform (ReactUpdates.js:86)
flushBatchedUpdates (ReactUpdates.js:147)
ReactUpdates_flushBatchedUpdates (ReactPerf.js:66)
Mixin.closeAll (Transaction.js:202)
Mixin.perform (Transaction.js:149)
ReactDefaultBatchingStrategy.batchedUpdates (ReactDefaultBat…Strategy.js:62)
enqueueUpdate (ReactUpdates.js:176)
enqueueUpdate (ReactUpdateQueue.js:24)
ReactUpdateQueue.enqueueForceUpdate (ReactUpdateQueue.js:143)
ReactComponent.forceUpdate (ReactComponent.js:86)
forceUpdateIfPending (deepForceUpdate.js:18)
traverseRenderedChildren (traverseRenderedChildren.js:4)
traverseRenderedChildren (traverseRenderedChildren.js:7)
deepForceUpdate (deepForceUpdate.js:33)
forceUpdateAll (requestForceUpdateAll.js:27)

About this issue

  • Original URL
  • State: closed
  • Created 8 years ago
  • Reactions: 1
  • Comments: 15 (7 by maintainers)

Commits related to this issue

Most upvoted comments

Hi, any news why 0b8dd94#diff-d749bb1257f721af37259e0346e623be was reverted and is gone from master?

Hey guys, any news on this issue? Is destroyOnUnmount: !(__NODE_ENV__ === 'development' && module.hot) still the best solution?

I think this is what has been screwing me up. I’m using redux-form in a next.js project and have been tearing my hair out while my state disappears automagically with a hot reload… is this going to be put back in?

Per this thread it was removed: https://github.com/erikras/redux-form/pull/947