Как внедрить стилизованные компоненты в React iframe

#reactjs #iframe #styled-components #react-frame-component

#reactjs #iframe #styled-компоненты #реагирующий фрейм-компонент

Вопрос:

Я создаю расширение Chrome, и мне нужно выполнить изоляцию стилей с помощью iframe, в частности ‘react-frame-component’, и я использую styled-components для стилей, но сгенерированные классы не вводятся в iframe, есть идеи о том, как я могу внедрить их в iframe?

Ответ №1:

Вы можете достичь этого с помощью обычного <iframe/> тега.

 const iFrame = useRef(null);

const applyStyle =  (ele: Document) => {
    const styleTag = document.createElement("link");
    styleTag.type = "text/css";
    styleTag.rel = "stylesheet";
    styleTag.href = "../styles.css";
    ele.head.appendChild(styleTag);
}

const onLoad = () => {
    applyStyle(iFrame.current.contentDocument);
}  

return (
   <iframe 
      id="doc-iframe"
      frameBorder="0"
      scrolling={"yes"} 
      src={url} 
      ref={iframeRef}
  />
);