css - CreateCache @emotioncache Failed to execute 'insertBefore' on 'Node': - Stack Overflow

I'm only getting this error in productionDoes anyone know why? I'm trying to put a component

I'm only getting this error in production

Does anyone know why? I'm trying to put a component inside an iframe

NotFoundError: Failed to execute 'insertBefore' on 'Node': The node before which the new node is to be inserted is not a child of this node.

import React, { useRef, useState } from "react";
import { createPortal } from "react-dom";
import createCache from "@emotion/cache";
import { CacheProvider } from "@emotion/react";
import { styled } from "@mui/material";

const PreviewIframe = styled("iframe")(() => ({
  border: "none",
  height: "100%",
  width: "100%",
}));
export const IFrame = ({
  children,
  ...props
}: {
  children: React.ReactNode;
  style?: React.CSSProperties;
}) => {
  const ref = useRef<HTMLIFrameElement>(null);
  const mountNode = ref?.current?.contentWindow?.document?.body;

  const cache = createCache({
    key: "css",
    container: ref?.current?.contentWindow?.document?.head,
    prepend: true,
  });
  return (
    <PreviewIframe ref={ref} {...props}>
      {mountNode &&
        createPortal(
          <CacheProvider value={cache}>{children}</CacheProvider>,
          mountNode
        )}
    </PreviewIframe>
  );
};

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1742323998a4422379.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信