当前位置: 首页 > 知识库问答 >
问题:

如何在非react第三方html中呈现多个react组件

杜俊逸
2023-03-14

我正在集成一个非react第三方库,它在我的react应用程序中呈现自己的HTML。如何渲染我自己的react组件后加载到该HTML的DOM中。我尝试使用ReactDom.Render,它确实有效,但不在根上下文中。反复调用ReactDom.Render似乎也会导致性能问题。

共有1个答案

贝研
2023-03-14

我利用React服务器渲染并结合React水合物解决了这个问题

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);
            }
        
        }
    };
}
 类似资料:
  • 我正在尝试在反应加载之前添加一个闪屏。 因为我使用的是react脚本/react-app,所以我的index.tsx只有以下部分: 我试着在同一个页面上添加我自己的div,但它没有显示出来。 我想显示一个简单的空白屏幕与我的飞溅图像在1秒定时器之前的反应加载,以避免/隐藏渲染元素的移动。 **如果我确实在app.tsx中添加了屏幕,则在屏幕加载之前会发生移动 更新 正如Rishabh在下面指出的,

  • 问题内容: 这是我尝试过的方法以及出现问题的方法。 这有效: 这不是: description属性只是HTML内容的普通字符串。但是由于某种原因,它呈现为字符串,而不是HTML。 问题答案: 检查您尝试追加到节点的文本是否没有像这样转义: 代替这个:

  • 以下是我尝试过的,以及它是如何出错的。 这个作品: 这没有: description属性只是HTML内容的普通字符串。但是,由于某些原因,它被呈现为字符串,而不是HTML。 有什么建议吗?

  • 我从这里修改了以下组件定义,如下所示。但是,与示例不同的是,每次在组件上移动鼠标时,组件都会重新呈现。 重新渲染非常引人注目: 有人知道为什么会这样吗?

  • 假设我有一个从父类扩展的子类。父类呈现 在儿童类,我如何呈现一个HTML DOM像下面的任何例子没有复制粘贴?

  • 问题内容: 我正在创建SPA,并尝试使用软件包版本在应用程序中设置“路由” 。 我的路线定义如下: 基本上,我想设置路由,以便对未定义路由的页面的任何请求都转到组件。 如何做到这一点?上面的解决方案在请求页面时同时呈现和组件。 亲切的问候 问题答案: 这是官方教程中的示例,如何避免呈现多条路线