Добавление внешнего JavaScript для реакции со шлемом - PullRequest
0 голосов
/ 29 апреля 2020

Добавление внешних 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
...