From 17ecf8fb32e7d76977bc5ceb5d479a7e993dc60c Mon Sep 17 00:00:00 2001 From: NikolaBorislavovHristov Date: Mon, 4 Nov 2019 14:35:34 +0200 Subject: [PATCH] change url/query params ref only if their value changed --- src/router/Router/Router.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/router/Router/Router.js b/src/router/Router/Router.js index 16fbc5740..f8e59f2f6 100644 --- a/src/router/Router/Router.js +++ b/src/router/Router/Router.js @@ -3,6 +3,7 @@ const ReactIs = require('react-is'); const PropTypes = require('prop-types'); const classnames = require('classnames'); const UrlUtils = require('url'); +const deepEqual = require('deep-equal'); const { RouteFocusedProvider } = require('../RouteFocusedContext'); const Route = require('../Route'); @@ -81,8 +82,14 @@ const Router = ({ className, onPathNotMatch, ...props }) => { return { key: `${routeViewIndex}${routeIndex}`, component: routeConfig.component, - urlParams, - queryParams + urlParams: view !== null && deepEqual(view.urlParams, urlParams) ? + view.urlParams + : + urlParams, + queryParams: view !== null && deepEqual(Array.from(view.queryParams.entries()), Array.from(queryParams.entries())) ? + view.queryParams + : + queryParams }; } else { return null;