Не отображается виджет Telegram Login на странице React
У меня есть вот такая страница:
import React, { useEffect } from 'react';
import { useCookies } from 'react-cookie';
import { useNavigate } from 'react-router-dom';
const MainPage = () => {
return (
<div>
<script async src="https://telegram.org/js/telegram-widget.js?22" data-telegram-login="ТУТ УКАЗАН БОТ" data-size="large" data-radius="5" data-auth-url="ТУТ УКАЗАН ДОМЕН" data-request-access="write"></script>
</div>
);
};
export default MainPage;
Но почему то этот виджет вообще не отображается. Сайт стоит на хостинге с доменом. Всё как надо. Но он просто не появляется. Прошу помощи
Ответы (1 шт):
Автор решения: Ak - kula Life
→ Ссылка
В принципе ответ не заставил себя ждать, react не обрабатывает вставку скриптов в компоненты. Реализовал вот так:
import React, { useEffect, useRef } from 'react';
import { useCookies } from 'react-cookie';
import { useNavigate } from 'react-router-dom';
const MainPage = () => {
useEffect(() => {
const script = document.createElement('script');
script.src = "https://telegram.org/js/telegram-widget.js?22";
script.setAttribute('data-telegram-login', "ТУТ НАЗВАНИЕ БОТА");
script.setAttribute('data-size', "large");
script.setAttribute('data-radius', "5");
script.setAttribute('data-auth-url', "ТУТ ОБРАТНЫЙ ЮРЛ");
script.setAttribute('data-request-access', "write");
script.async = true;
ref.current.appendChild(script);
}, [cookies, navigate]);
return (
<div>
<div ref={ref} />
</div>
);
};
export default MainPage;