Почему при навигации между компонентами в Blazor не погружается JS код?

Ссылка скопирована
1 ответ

Имеется проект 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

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Антон С. Ответ

Проблема, с которой вы столкнулись, связана с тем, что при навигации между компонентами в Blazor не происходит загрузка JavaScript кода. Это может быть вызвано различными причинами, такими как неправильное подключение скриптов, конфликты с другими библиотеками или неправильная настройка маршрутизации.

Для начала, убедитесь, что вы правильно подключили все необходимые скрипты в вашем проекте Blazor. Проверьте файл _Host.cshtml, чтобы убедиться, что все скрипты загружаются правильно и в нужном порядке. Убедитесь, что вы используете правильный путь к скриптам и они не содержат ошибок.

Также, возможно, что у вас есть конфликт между JavaScript библиотеками, которые вы используете в разных компонентах. Попробуйте проверить консоль браузера на наличие ошибок и конфликтов при переходе между компонентами.

Если проблема не решается, попробуйте проверить настройки маршрутизации в вашем проекте Blazor. Убедитесь, что маршруты настроены правильно и что при переходе между компонентами происходит корректный рендеринг JavaScript кода.

Если ни одно из вышеперечисленного не помогло, попробуйте создать минимальный пример кода, который воспроизводит проблему, и опубликуйте его на форуме сообщества Blazor. Это поможет другим разработчикам лучше понять вашу проблему и предложить более точное решение.

Надеюсь, эти рекомендации помогут вам решить проблему с непогружающимся JavaScript кодом при навигации между компонентами в Blazor. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их на форуме или обратиться за помощью к сообществу разработчиков Blazor.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно