我正在进行文本高亮显示,我能够检测选择等。现在我有了类似的东西
Te<span>x</span>t
字符串和
["Te", "<span>", "x", "</span>", "t"]
在数组中。如何以安全的方式使用react进行渲染?顺便说一句,DangerouslysetinnerHTML在这里不起作用(可能需要一个钩子之类的,但它不安全,所以最好使用其他东西(。
*这些跨度的数量可能会发生变化,因此可能会有很多标签。
编辑:我的算法为文本制作一个掩码(一个满零的数组(,每当用户选择某个东西时,它就会在数组中的某些字段上加1(比如区间(。然后,它解析文本和掩码,当出现例如01时,它将开始标记粘贴在两者之间(当10=>结束标记时(。实现类似Medium的突出显示功能的其他方法是什么?
提前感谢
当你试图用dangerouslySetInnerHTML
来呈现用户内容时,它是危险的。我的意思是,用注入的<spans>
来呈现字符串并不比原始字符串更危险。如果你想净化字符串,你可以在突出显示之前进行。
<div dangerouslySetInnerHTML={{ __html: "Te<span>x</span>t" }} />