Добавление внешних javascript
файлов в React обсуждалось здесь . В этой статье был дан короткий отрывок, как это сделать с Helmet
, но у меня это не работает.
- Я создал простое приложение реакции с
npx create-react-app my-app
- Я добавил демонстрационный внешний js файл в папку publi c с именем
MyLib.js
:
Библиотека содержит следующий код:
function hello(){
return "hello world!";
}
- Я импортировал
helmet
и расширил приложение по умолчанию
Код с использованием библиотеки:
import React, { useState, useEffect } from 'react';
import './App.css';
import {Helmet} from "react-helmet";
function App() {
return (
<div className="App">
<Helmet>
<title>Turbo Todo</title>
<script src="http://localhost:3000/MyLib.js" type="text/javascript"></script>
</Helmet>
<b>{window.hello()}</b>
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<p>
Edit <code>src/App.js</code> and save to reload.
</p>
<a
className="App-link"
href="https://reactjs.org"
target="_blank"
rel="noopener noreferrer"
>
Learn React
</a>
</header>
</div>
);
}
export default App;
В результате получается TypeError: window.hello не является функцией . «Hello World» не отображается. Что я не прав? Я пробовал с префиксом window
и без него.
- Установлен шлем
- Файл доступен по
http://localhost:3000/MyLib.js