Задать вопрос
@rail-ka
Программист.

Динамический импорт из url в react компоненте?

Стоит задача подключить библиотеку для оплаты YandexCheckout.js. Подключить библиотеку можно только через CDN. Поскольку она нужна будет только если клиент захочет оплатить, хотелось бы подключать её динамически при монтировании компонента в componentDidMount, а не вставлять в конец файла index.html как .
Есть динамический импорт для локальной библиотеки:
import('axios').then(() => {}), но она не работает с url.
В данный момент пока склоняюсь к подключении библиотеки Systemjs, она вроде бы умеет импортировать из url.
Есть ли другие варианты?

Дополнение:
Ищу способ использовать именно без DOM, чтобы можно было бы использовать и в react-native.
Так же видел ответы в stackoverflow:
https://stackoverflow.com/questions/44877904/how-d...
https://stackoverflow.com/questions/36103641/dynam...
https://stackoverflow.com/questions/34607252/es6-i...
  • Вопрос задан
  • 949 просмотров
Подписаться 1 Средний 2 комментария
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Skillbox
    JavaScript
    3 месяца
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
@davidnum95
В порядке бреда:
componentDidMount = () => {
  const script = document.createElement('script');
  script.src='https://www.cdn.com/YandexCheckout.js';
  script.type = "text/javascript";
  script.id = "yandexCheckout";
  document.head.appendChild(script);
}

componentWillUnmount = () => {
 const script = document.getElementById("yandexCheckout");
 script.parentNode.removeChild(script)
}


Дополнение:
Ищу способ использовать именно без DOM, чтобы можно было бы использовать и в react-native.

Ну можно через eval попробовать
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы