У меня есть следующий маршрут:
<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
Могу ли я решить эту проблему другим способом?
Возможно ли изменить маршрут, не добавляя маршрут в качестве опоры в компонент? Это решило бы проблему, которую я считаю.