Добавьте или обновите параметр запроса с помощью response-router v4 без повторного рендеринга основного компонента. - PullRequest
0 голосов
/ 29 сентября 2018

Допустим, у нас есть приложение React с точкой входа, которая выглядит следующим образом:

import React from 'react';
import ReactDOM from 'react-dom';
import { BrowserRouter } from 'react-router-dom';

import Application from './Application';


ReactDOM.render((
    <BrowserRouter>
        <Application />
    </BrowserRouter>
), document.getElementById('root'));

Где-то глубоко в приложении React я хотел бы добавить (или обновить) параметры запроса в ответ накакое-то действие пользователя.Я мог бы использовать метод history.push(), который реагирует маршрутизатор обеспечивает , но использование этого метода приводит к повторной визуализации Application.

Можно ли добавлять или обновлять параметры запроса безApplication перерисовывается?Я обнаружил, что могу изменить параметры запроса без повторного рендеринга Application, если я напрямую использую API истории , но это похоже на хак.

1 Ответ

0 голосов
/ 29 сентября 2018

Я сейчас читаю книгу о реакции, и у меня возникла та же проблема.

Я обнаружил, что вам нужно добавить shouldComponentUpdate метод к родительскому компоненту и проверить, если location.search значение отличается

this.props.location.search !== nextProps.location.search

Возвращение true из этой проверки приведет к повторной визуализации компонента

PS Книга использовала React Routerv3, поэтому у меня были трудности с обновлением всего приложения и вложенных маршрутов

PPS Я использую историю, которая теперь является пакетом вне React Router

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...