在 React 中使用 HTML 占位符

Using HTML placeholders in React

我通过 Gatsby 从 CMS 抓取内容。标记内有占位符,应将其替换为 React 元素。

所以我得到这样的东西:

let content = '<span>Hello World [placeholder]!</span>';

在 React 中,我想将其更改为这样的东西(工具提示的标记来自 React 元素):

let content = '<span>Hello World <div class="tooltip">Important warning</div>!</span>';

应使用 dangerouslySetInnerHTML.

将带有替换元素的最终 html 转储到 DOM 中

我尝试使用 react-string-replace:

reactStringReplace(content, '[placeholder]', () => (<Tooltip />));

但它给了我一个包含字符串和 React 元素的混合数组,如果不破坏 HTML 结构就无法合并这些元素。

解决这个问题的好方法是什么?还是我在 CMS 中完全使用占位符是错误的?

我找到了一个非常好的 npm 包,它提供了这个功能以及更多:https://interweave.dev/