169 похожих чатов

Привет. Подскажите, пожалуйста касательно https://reactrouter.com/ Часть сайта это обычные html странички.


Часть — React SPA.
Внутри SPA есть навигация по всему сайту.
По клику происходит:

const SideNavigationWrapper = () => {
const navigate = useNavigate();
// …
<Link href="…" onFollow={(event) => {
navigate(event.detail.href);
}}/>


Проблема в том что навигация не работает вне SPA. Получаю белый экран.
Желаемое поведение — фолбек к нормальной навигации со сменой странички на не SPA-шную.

Это возможно?
Я бы ожидал этого по умолчанию, но нет.

И нет, не могу использовать стандартный компоненты ссылки роутера.
Должен использовать ссылку из диайн системы. И подключить роутер в onFollow

3 ответов

20 просмотров
Anton-Nemtsev Автор вопроса

Мешает то, что тогда для ссылок внутри SPA тоже будет происходить полная перезагрузка страницы. Мне бы хотелось что бы внутри SPA навигация происходила react-way с частичным обновлением. Кроме того я открываю ссылку в том же окне по умолчанию, не в новом. так что это window.location.href= Есть способ понять знает ли реакт роутер урл?

Anton Nemtsev
Мешает то, что тогда для ссылок внутри SPA тоже бу...

Так ведь ты готовые страницы открываешь через useNavigate (для spa), остальные через window.open (обычные странички, вторым параметром указать "_self", чтоб на этой же вкладке). Ну и соответственно, при переходе с обычной страницы на spa и обратно будет перезагрузка страницы. А внутри spa будет без перезагрузок. По крайней мере в моем понимании так. Хотя может я что-то не так понял из того, что нужно...

Anton-Nemtsev Автор вопроса
Alex
Так ведь ты готовые страницы открываешь через useN...

а как отличить урлы страниц внутри spa от страниц вне spa? в меню же просто текчтовые урлы.

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Карта сайта