unmount method Null safety
Transition from the "inactive" to the "defunct" lifecycle state.
Called when the framework determines that an inactive element will never be reactivated. At the end of each animation frame, the framework calls unmount on any remaining inactive elements, preventing inactive elements from remaining inactive for longer than a single animation frame.
After this function is called, the element will not be incorporated into the tree again.
Any resources this element holds should be released at this point. For example, RenderObjectElement.unmount calls RenderObject.dispose and nulls out its reference to the render object.
See the lifecycle documentation for Element for additional information.
Implementations of this method should end with a call to the inherited
method, as in super.unmount()
.
Implementation
@override
void unmount() {
assert(
!renderObject.debugDisposed!,
'A RenderObject was disposed prior to its owning element being unmounted: '
'$renderObject',
);
final RenderObjectWidget oldWidget = widget as RenderObjectWidget;
super.unmount();
assert(
!renderObject.attached,
'A RenderObject was still attached when attempting to unmount its '
'RenderObjectElement: $renderObject',
);
oldWidget.didUnmountRenderObject(renderObject);
_renderObject!.dispose();
_renderObject = null;
}