ReasonReact 不安全的字符串到元素

ReasonReact unsafe string to element

我创建了一个接受字符串并替换其中特定子字符串的函数:

let mark = (str: string, sub: string) : string => {
    let re = Js.Re.fromString("(" ++ sub ++ ")");
    Js.String.replaceByRe(re, "<mark></mark>", str);
};

它按预期工作。问题是,当使用 ReasonReact.stringToElement 时,它会转义字符串,这可能是出于安全原因。但是,我确实需要一种方法来不安全地转换元素中的字符串,因此其中的 <mark> 标记变为有效的 HTML。我该怎么做?

使用dangerouslytSetInnerHTML

它在语法上几乎完全可以翻译成 ReasonReact:

<div dangerouslySetInnerHTML={ "__html": "<mark>whatever</mark>" } />