Почему при навигации между компонентами в Blazor не погружается JS код?
Имеется проект Blazor. За основу взят простой готовый HTML шаблон который также содержит JS скрипты.
Я растащил этот шаблон на компоненты razor, и вроде бы все работает но, JS функции перестают подгружаться при навигации между страницами. Если я обновлю страницу то все начинает работать но только в режиме рендеринга на сервере. В режиме рендеринга WebAssembly, JS не подгружается вообще. Причем сами файлы скриптов добавляются вроде корректно. Видимо есть какая то особенность использования JS кода и рендеринга Blazor компонентов, но даже в доках ничего не нашел касаемо этого. Пробовал вызывать функцию в событии OnAfterRenderAsync. в браузере выдает ошибку будто функция не найдена.
В чем может быть дело подскажите? Заранее благодарю!
Дополнительно:
Если пишет, что функция не найдена, значит на страницу этот js не подгружается.
js страницы может находиться в View, после html кода или в общем файле "site.js", на который должна быть ссылка в "_Layout.cshtml"
Мне кажется у Вас второй вариант - не подгружаются скрипты из "site.js" (если я всё правилно понял в исходных данных)
Ответы:
В blazor использовать кастомные JS скрипты немного сложнее чем вы думаете. Там нужно использовать такую штуку как JSRuntime. А вообще советую прочитать эту статью про JS Interop
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Проблема, с которой вы столкнулись, связана с тем, что при навигации между компонентами в Blazor не происходит загрузка JavaScript кода. Это может быть вызвано различными причинами, такими как неправильное подключение скриптов, конфликты с другими библиотеками или неправильная настройка маршрутизации.
Для начала, убедитесь, что вы правильно подключили все необходимые скрипты в вашем проекте Blazor. Проверьте файл _Host.cshtml, чтобы убедиться, что все скрипты загружаются правильно и в нужном порядке. Убедитесь, что вы используете правильный путь к скриптам и они не содержат ошибок.
Также, возможно, что у вас есть конфликт между JavaScript библиотеками, которые вы используете в разных компонентах. Попробуйте проверить консоль браузера на наличие ошибок и конфликтов при переходе между компонентами.
Если проблема не решается, попробуйте проверить настройки маршрутизации в вашем проекте Blazor. Убедитесь, что маршруты настроены правильно и что при переходе между компонентами происходит корректный рендеринг JavaScript кода.
Если ни одно из вышеперечисленного не помогло, попробуйте создать минимальный пример кода, который воспроизводит проблему, и опубликуйте его на форуме сообщества Blazor. Это поможет другим разработчикам лучше понять вашу проблему и предложить более точное решение.
Надеюсь, эти рекомендации помогут вам решить проблему с непогружающимся JavaScript кодом при навигации между компонентами в Blazor. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их на форуме или обратиться за помощью к сообществу разработчиков Blazor.