diff --git a/libmproxy/web/static/app.js b/libmproxy/web/static/app.js index 044b9e35d..24f4948ec 100644 --- a/libmproxy/web/static/app.js +++ b/libmproxy/web/static/app.js @@ -528,10 +528,12 @@ var Navigation = _.extend({}, ReactRouter.Navigation, { // we may remove this mixin and access react-router directly again. var State = _.extend({}, ReactRouter.State, { getQuery: function(){ - return this.context.router.getCurrentQuery(); + // For whatever reason, react-router always returns the same object, which makes comparing + // the current props with nextProps impossible. As a workaround, we just clone the query object. + return _.clone(this.context.router.getCurrentQuery()); }, getParams: function(){ - return this.context.router.getCurrentParams(); + return _.clone(this.context.router.getCurrentParams()); } }); diff --git a/web/src/js/components/common.js b/web/src/js/components/common.js index ba4c93c2c..433e4f10f 100644 --- a/web/src/js/components/common.js +++ b/web/src/js/components/common.js @@ -67,10 +67,12 @@ var Navigation = _.extend({}, ReactRouter.Navigation, { // we may remove this mixin and access react-router directly again. var State = _.extend({}, ReactRouter.State, { getQuery: function(){ - return this.context.router.getCurrentQuery(); + // For whatever reason, react-router always returns the same object, which makes comparing + // the current props with nextProps impossible. As a workaround, we just clone the query object. + return _.clone(this.context.router.getCurrentQuery()); }, getParams: function(){ - return this.context.router.getCurrentParams(); + return _.clone(this.context.router.getCurrentParams()); } });