Изменить путь в реагирующем маршрутизаторе без повторного рендеринга? - PullRequest
0 голосов
/ 01 ноября 2018

У меня есть следующий маршрут:

<Route path="/cases" component={Cases} />

Этот маршрут обрабатывает следующие примеры путей

/cases
/cases/1

У меня есть iframe на этом маршруте, который отвечает за обработку всех пользовательских взаимодействий. При изменении местоположения в iframe iframe отправляет сообщение в родительское окно, уведомляя его об изменении URL.

Я хочу иметь возможность изменить маршрут в родительском окне без повторного рендеринга iframe.

Это мое текущее решение

this.props.history.replace(pathnameFromIframe);

shouldComponentUpdate = () => {
    return false;
}

Это решение работает, но оно противоречит документам React:

shouldComponentUpdate ... метод существует только как исполнение оптимизация. Не полагайтесь на это, чтобы «предотвратить» рендеринг, так как это может привести к ошибкам.

https://reactjs.org/docs/react-component.html#shouldcomponentupdate

Могу ли я решить эту проблему другим способом?

Возможно ли изменить маршрут, не добавляя маршрут в качестве опоры в компонент? Это решило бы проблему, которую я считаю.

1 Ответ

0 голосов
/ 01 ноября 2018

я думаю, что история хэш если я не ошибаюсь

import { hashHistory } from 'react-router';


hashHistory.push({
    pathname:"/url-url",

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