Запуск внешнего кода JavaScript в ReactJS

#reactjs

#reactjs

Вопрос:

Я хочу запустить внешний JS, который на самом деле opencv.js . Мне нужно получить доступ к его переменной CV, а затем вызвать другие функции.

Я добавляю следующие коды в свой useeffect хук следующим образом:

 export default function PolygonCropper(props) {
      ...
      useEffect(() => {
    
        const script = document.createElement("script");
        script.src = "https://docs.opencv.org/3.4.0/opencv.js";
        script.async = false;    
        document.body.appendChild(script);
        //
        console.log('cv from opencv is');
        console.log(window["cv"]);
        ....
    
       }
 

Однако я не могу получить доступ к window [«cv»], и он не определен, когда я просматриваю журналы в Chrome.

Редактировать:

просмотр журнала Chrome с помощью console.log (window). Я вижу окно и резюме внутри него, но я могу получить доступ к window [«cv»] введите описание изображения здесь

Комментарии:

1. Почему вы пытаетесь добавить скрипт в документ каждый раз, когда монтируется компонент? Это должен быть статический script тег. И почему он должен быть прикреплен к окну? Здесь нет никакого кода, который сделал бы его глобальным.

2. Я думаю, правильный способ — включить это в useffect, чтобы избежать дублирования инъекций. Я отредактировал свой вопрос, когда я console.log (окно) Я вижу резюме внутри него.