Reactjs:在带有上下文的客户端上呈现原始html

Reactjs: Rendering raw html on the client with context

本文关键字:原始 html 客户端 上下文 Reactjs      更新时间:2023-09-26

我正试图与第三方库集成,该库显示一些从函数调用返回的原始html作为弹出窗口。我发现我可以使用renderToString来渲染我的组件并返回它。

  _popup(id) {
    var foo = _getFoo(id);
    return React.renderToString(
        <Selectable>
          <FooMedia foo={foo} />
        </Selectable>
      );
  },

这很好,html被正确显示。我遇到的问题是,我正在使用React Intl,它期望在组件上下文中可以使用messages对象。当我启动我的应用程序时,我最初设置了这个,像这样:

  React.render(
    <Handler
      params={state.params}
      locales={'en-US'}
      formats={formats}
      messages={messages} 
    />,
    document.getElementById('app')
  );

但是上下文没有被传递,因为我在组件层次结构之外呈现组件。我如何为组件片段设置上下文?我发现withContext,但使用回调和第三方库不期望回调。

有什么办法可以做到吗?

可以在renderToString的顶层组件中设置消息属性吗?