简体   繁体   English

如何在非反应第三方 html 中渲染多个反应组件

[英]How do I render multiple react components in non-react 3rd party html

I am integrating a non-react 3rd party library that renders its own HTML inside my react app.我正在集成一个非反应的第 3 方库,它在我的反应应用程序中呈现它自己的 HTML。 How do a render my own react components post load into the DOM of that html.如何渲染我自己的反应组件后加载到 html 的 DOM 中。 I have tried using ReactDOM.Render which does work but is not in my root context.我尝试过使用 ReactDOM.Render,它确实有效,但不在我的根上下文中。 It also seems to cause performance issues calling ReactDOM.Render over and over..它似乎还会导致性能问题一遍又一遍地调用 ReactDOM.Render ..

I have solved it by utilizing React Server rendering and combination with React Hydrate我已经通过使用 React Server 渲染和结合 React Hydrate 解决了这个问题

export function ConvertJSXtoHTMLWithCallback (id: string, element: JSX.Element) {
    const elem = ReactDOMServer.renderToString(element);

    return {
        html: `<div id='${id}'>${elem}</div>`,
        callback: () => { 
            const dom = document.querySelector(`#${id}`);
            if(dom) {
               ReactDOM.hydrate(element, dom);
            }
        
        }
    };
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM