#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 (окно) Я вижу резюме внутри него.