From dd19ef5df423d3536bea5ca2499073d2929da309 Mon Sep 17 00:00:00 2001 From: Bill Thornton Date: Fri, 28 May 2021 16:35:27 -0400 Subject: [PATCH] Unmount components when view is destroyed --- src/components/reactControllerFactory.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/components/reactControllerFactory.js b/src/components/reactControllerFactory.js index 5e2d46a950..9611b706ee 100644 --- a/src/components/reactControllerFactory.js +++ b/src/components/reactControllerFactory.js @@ -1,13 +1,17 @@ import React from 'react'; import ReactDOM from 'react-dom'; -// TODO: Probably need to rehydrate on view restores - export default (view, params, { detail }) => { if (detail.options?.pageComponent) { + // Fetch and render the page component to the view import(/* webpackChunkName: "[request]" */ `./pages/${detail.options.pageComponent}`) .then(({ default: component }) => { ReactDOM.render(React.createElement(component, params), view); }); + + // Unmount component when view is destroyed + view.addEventListener('viewdestroy', () => { + ReactDOM.unmountComponentAtNode(view); + }); } };