#javascript #reactjs #next.js
Вопрос:
Я использую next/head
для загрузки стороннего скрипта. Чтобы узнать, когда скрипт загрузился, я добавил onLoad
обработчик к <script>
элементу, но он никогда не срабатывает, даже если скрипт успешно загружен. Почему?
Пример:
const ScriptComponent: React.FC = () => {
return (
<Head>
<script
src="https://apis.google.com/js/platform.js"
onLoad={() => console.log("script loaded")}
></script>
</Head>
);
}
Комментарии:
1. Ваш синтаксис неверен, встроенный код, подобный этому, должен быть заключен в кавычки, а не в фигурные скобки. Ваш синтаксис-React/JSX, но я предполагаю, что то, что у вас есть, вставляется как есть, поэтому вы не можете это использовать. Тебе нужно
onload="console.log('script loaded')"
2. Это было совершенно неожиданно, учитывая, что для всего остального в JSX функции передаются в качестве обработчиков, а не строк , но вы были правы! Похоже, это особая причуда
next/head
. Можете ли вы опубликовать свой комментарий в качестве ответа, чтобы я мог отметить его как правильный?