Я создаю приложение React.js с использованием дизайна SPA (одностраничного приложения);естественно, я использую маршрутизацию, чтобы помочь управлять и отображать различные компоненты.
Мое приложение React построено по веб-шаблону, в котором есть ряд рекомендуемых «ресурсов» - коллекция CSS, изображений и поставщиков. предложил JS. Шаблон предлагает удобное использование нескольких «фирменных» скриптов - хотя многие не по умолчанию - которые я хочу включить в один из моих компонентов. Звучит достаточно просто, верно?
Однако этот компонент вложен как суб-маршрут к главной странице макета, где основной макет направляется напрямую - суб-маршрут является косвенным. (Не уверен, что это изменит способ обработки, но я подумал, что добавлю этот кусочек). Он отображается нормально и все, поэтому не стоит беспокоиться ... пока.
В документации по веб-шаблону рекомендуется, чтобы я
включил сценарий в область «Необязательный JS» на странице. нижний колонтитул
Однако, он не говорит мне , на какой странице мне нужен скрипт в . Больше ничего не оставалось, поэтому я поместил скрипт в индексный файл (поскольку это единственный файл в шаблоне, имеющий заметную область «Необязательный JS»). И вуаля, скрипт работает! ... sorta:
Он работает только тогда, когда я напрямую направляю к компоненту, использующему скрипт.
В другихслова, скажем, компонент использует URL-адрес «localhost: xxxx / admin / component2», где «admin» - это основной компонент макета, который имеет два суб-маршрута: «component2» и «component1».
Если яперейти непосредственно к "component2", он работает нормально;скрипт корректно отображается ... в основном ... небольшая ошибка, но это связано с самим скриптом.
Но если я начну с основного компонента макета (т. е. "localhost: xxxx / admin /")или перейдите от «component2» к «component1» (т. е. «localhost: xxxx / admin / component1»), «component2» прекращает работу со сценарием «vendored». Компонент сам работает (так как он не связан напрямую со сценарием), но оставляет меня почесывать голову.
Я думал, что моя проблема может быть одной из трех: 1)Я мог неправильно использовать маршруты, 2) Как-то связано с монтированием JS «вендора» [я не совсем уверен, является ли это проблемой, но я попытался исследовать ее как потенциальное решение], или 3) Сценарий находится внеправильное расположение
TL; DR : что может помешать «продаваемому» JS работать с моим компонентом с маршрутизацией, но только , когда он естьнет прямого доступа?