diff --git a/framework/core/js/src/common/components/Page.js b/framework/core/js/src/common/components/Page.js index 917aad5af..a0bc67039 100644 --- a/framework/core/js/src/common/components/Page.js +++ b/framework/core/js/src/common/components/Page.js @@ -10,9 +10,6 @@ export default class Page extends Component { oninit(vnode) { super.oninit(vnode); - app.previous = app.current; - app.current = new PageState(this.constructor); - this.onNewRoute(); app.drawer.hide(); @@ -33,7 +30,8 @@ export default class Page extends Component { * adjust the current route name. */ onNewRoute() { - app.current.set('routeName', this.attrs.routeName); + app.previous = app.current; + app.current = new PageState(this.constructor, { routeName: this.attrs.routeName }); } oncreate(vnode) { diff --git a/framework/core/js/src/forum/components/DiscussionPage.js b/framework/core/js/src/forum/components/DiscussionPage.js index 6fc97119e..d54e15a48 100644 --- a/framework/core/js/src/forum/components/DiscussionPage.js +++ b/framework/core/js/src/forum/components/DiscussionPage.js @@ -99,6 +99,7 @@ export default class DiscussionPage extends Page { super.onbeforeupdate(vnode); if (m.route.get() !== this.prevRoute) { + this.onNewRoute(); this.prevRoute = m.route.get(); // If we have routed to the same discussion as we were viewing previously, diff --git a/framework/core/js/src/forum/components/UserPage.js b/framework/core/js/src/forum/components/UserPage.js index 7ac08cb72..1171342f1 100644 --- a/framework/core/js/src/forum/components/UserPage.js +++ b/framework/core/js/src/forum/components/UserPage.js @@ -34,6 +34,8 @@ export default class UserPage extends Page { onbeforeupdate() { const currUsername = m.route.param('username'); if (currUsername !== this.prevUsername) { + this.onNewRoute(); + this.prevUsername = currUsername; this.loadUser(currUsername);