From a97466cdfd36eed757dbda64fbe2a06d0657c62b Mon Sep 17 00:00:00 2001 From: Tasso Evangelista Date: Fri, 18 Oct 2019 14:11:59 -0300 Subject: [PATCH] Fix route component remounting --- client/routes.js | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/client/routes.js b/client/routes.js index beed5bdb57f..d6e0cfd2574 100644 --- a/client/routes.js +++ b/client/routes.js @@ -40,10 +40,6 @@ const createTemplateForComponent = async ( // eslint-disable-next-line new-cap renderContainerView = () => HTML.DIV() ) => { - const React = await import('react'); - const ReactDOM = await import('react-dom'); - const { MeteorProvider } = await import('./components/providers/MeteorProvider'); - const name = component.displayName || component.name; if (!name) { @@ -59,6 +55,14 @@ const createTemplateForComponent = async ( Template[name].props = new ReactiveVar(props); + const React = await import('react'); + const ReactDOM = await import('react-dom'); + const { MeteorProvider } = await import('./components/providers/MeteorProvider'); + + function TemplateComponent() { + return React.createElement(component, Template[name].props.get()); + } + Template[name].onRendered(() => { Template.instance().autorun((computation) => { if (computation.firstRun) { @@ -67,7 +71,7 @@ const createTemplateForComponent = async ( ReactDOM.render( React.createElement(MeteorProvider, { - children: React.createElement(() => React.createElement(component, Template[name].props.get())), + children: React.createElement(TemplateComponent), }), Template.instance().firstNode); }); });