roact icon indicating copy to clipboard operation
roact copied to clipboard

Prevent firing Change events when a component is unmounting

Open benbrimeyer opened this issue 5 years ago • 0 comments

Was having issues creating a simple repro, but had ran into issue with this when unmounting a TextBox that has a Roact.Change.Text assignment. The function bound to Roact.Change.Text calls setState which would invoke the following error when unmounting:

    CorePackages.Packages._Index.roblox_roact.roact.createSignal:52: Listeners can only be disconnected once.
  In element:
  <enable element tracebacks>

      Stack Begin
      Script 'CorePackages.Packages._Index.roblox_roact.roact.RobloxRenderer', Line 268 - function updateHostNode
      Script 'CorePackages.Packages._Index.roblox_roact.roact.createReconciler', Line 234 - function updateVirtualNode
      Script 'CorePackages.Packages._Index.roblox_roact.roact.createReconciler', Line 72 - function updateChildren
      Script 'CorePackages.Packages._Index.roblox_roact.roact.createReconciler', Line 111 - function updateVirtualNodeWithChildren
      Script 'CorePackages.Packages._Index.roblox_roact.roact.RobloxRenderer', Line 273 - function updateHostNode
      Script 'CorePackages.Packages._Index.roblox_roact.roact.createReconciler', Line 234 - function updateVirtualNode
      Script 'CorePackages.Packages._Index.roblox_roact.roact.createReconciler', Line 72 - function updateChildren
      Script 'CorePackages.Packages._Index.roblox_roact.roact.createReconciler', Line 111 - function updateVirtualNodeWithChildren
      Script 'CorePackages.Packages._Index.roblox_roact.roact.RobloxRenderer', Line 273 - function updateHostNode
      Script 'CorePackages.Packages._Index.roblox_roact.roact.createReconciler', Line 234 - function updateVirtualNode
      Script 'CorePackages.Packages._Index.roblox_roact.roact.createReconciler', Line 72 - function updateChildren
      Script 'CorePackages.Packages._Index.roblox_roact.roact.createReconciler', Line 111 - function updateVirtualNodeWithChildren
      Script 'CorePackages.Packages._Index.roblox_roact.roact.RobloxRenderer', Line 273 - function updateHostNode
      Script 'CorePackages.Packages._Index.roblox_roact.roact.createReconciler', Line 234 - function updateVirtualNode
      Script 'CorePackages.Packages._Index.roblox_roact.roact.createReconciler', Line 72 - function updateChildren
      Script 'CorePackages.Packages._Index.roblox_roact.roact.createReconciler', Line 111 - function updateVirtualNodeWithChildren
      Script 'CorePackages.Packages._Index.roblox_roact.roact.RobloxRenderer', Line 273 - function updateHostNode
      Script 'CorePackages.Packages._Index.roblox_roact.roact.createReconciler', Line 234 - function updateVirtualNode
      Script 'CorePackages.Packages._Index.roblox_roact.roact.createReconciler', Line 72 - function updateChildren
      Script 'CorePackages.Packages._Index.roblox_roact.roact.createReconciler', Line 119 - function updateVirtualNodeWithRenderResult
      Script 'CorePackages.Packages._Index.roblox_roact.roact.Component', Line 496 - function __resolveUpdate
      Script 'CorePackages.Packages._Index.roblox_roact.roact.Component', Line 434 - function __update
      Script 'CorePackages.Packages._Index.roblox_roact.roact.createReconciler', Line 238 - function updateVirtualNode
      Script 'CorePackages.Packages._Index.roblox_roact.roact.createReconciler', Line 72 - function updateChildren
      Script 'CorePackages.Packages._Index.roblox_roact.roact.createReconciler', Line 119 - function updateVirtualNodeWithRenderResult
      Script 'CorePackages.Packages._Index.roblox_roact.roact.Component', Line 496 - function __resolveUpdate
      Script 'CorePackages.Packages._Index.roblox_roact.roact.Component', Line 434 - function __update
      Script 'CorePackages.Packages._Index.roblox_roact.roact.createReconciler', Line 238 - function updateVirtualNode
      Script 'CorePackages.Packages._Index.roblox_roact.roact.createReconciler', Line 72 - function updateChildren
      Script 'CorePackages.Packages._Index.roblox_roact.roact.createReconciler', Line 119 - function updateVirtualNodeWithRenderResult
      Script 'CorePackages.Packages._Index.roblox_roact.roact.Component', Line 496 - function __resolveUpdate
      Script 'CorePackages.Packages._Index.roblox_roact.roact.Component', Line 434 - function __update
      Script 'CorePackages.Packages._Index.roblox_roact.roact.createReconciler', Line 238 - function updateVirtualNode
      Script 'CorePackages.Packages._Index.roblox_roact.roact.createReconciler', Line 72 - function updateChildren
      Script 'CorePackages.Packages._Index.roblox_roact.roact.createReconciler', Line 119 - function updateVirtualNodeWithRenderResult
      Script 'CorePackages.Packages._Index.roblox_roact.roact.Component', Line 496 - function __resolveUpdate
      Script 'CorePackages.Packages._Index.roblox_roact.roact.Component', Line 434 - function __update
      Script 'CorePackages.Packages._Index.roblox_roact.roact.createReconciler', Line 238 - function updateVirtualNode
      Script 'CorePackages.Packages._Index.roblox_roact.roact.createReconciler', Line 72 - function updateChildren
      Script 'CorePackages.Packages._Index.roblox_roact.roact.createReconciler', Line 111 - function updateVirtualNodeWithChildren
      Script 'CorePackages.Packages._Index.roblox_roact.roact.RobloxRenderer', Line 273 - function updateHostNode
      Script 'CorePackages.Packages._Index.roblox_roact.roact.createReconciler', Line 234 - function updateVirtualNode
      Script 'CorePackages.Packages._Index.roblox_roact.roact.createReconciler', Line 72 - function updateChildren
      Script 'CorePackages.Packages._Index.roblox_roact.roact.createReconciler', Line 119 - function updateVirtualNodeWithRenderResult
      Script 'CorePackages.Packages._Index.roblox_roact.roact.Component', Line 496 - function __resolveUpdate
      Script 'CorePackages.Packages._Index.roblox_roact.roact.Component', Line 434 - function __update
      Script 'CorePackages.Packages._Index.roblox_roact.roact.createReconciler', Line 238 - function updateVirtualNode

benbrimeyer avatar Jun 26 '20 19:06 benbrimeyer