提问人:meJustAndrew 提问时间:8/18/2023 最后编辑:WingmeJustAndrew 更新时间:8/20/2023 访问量:76
如何在 React 中使用 Sanitizer API?
How to use Sanitizer API in React?
问:
在将 HTML 字符串发送到后端之前,我需要对其进行清理,并且我正在尝试使用 Mozilla 文档中提到的 Sanitizer API。所以我在我的 React 项目中创建了以下方法:
sanitizeText(unsanitized_string) {
return new Sanitizer().sanitizeFor(
"div",
unsanitized_string,
).innerHTML;
}
但这有以下编译错误:
第 94:20 行:“Sanitizer”未定义 no-undef
为什么我会收到此错误?
答:
1赞
Wing
8/18/2023
#1
问题
在撰写本文时,HTML Sanitizer API 仍处于实验阶段。问题中的错误看起来像 linting 错误 (no-undef
)。我假设它来自 ESLint。ESLint 从此包中获取全局变量列表。查看包的全局变量定义,HTML Sanitizer API 未显示。它似乎也没有提供缺失类型的指南(参见 TypeScript 的 DOM Lib Generator 存储库以获取类似内容),因此不确定全局变量如何进入,或者 API 是否需要支持基线。
溶液
配置 ESLint
你可以让 ESLint 知道全局变量。有几种选择:
使用配置注释
在引用全局的文件顶部,您可以添加以下内容:
/* global Sanitizer */
使用配置文件
在 ESLint 的配置文件中,您可以添加以下内容:
{
"globals": {
"Sanitizer": true
}
}
有关更多详细信息,请参阅文档。
为 globals 包做贡献
您可以前往 globals 包并打开一个问题来查询有关添加新全局变量的信息。包作者可以详细说明贡献准则(例如支持基线)。如果他们对贡献持开放态度,您可以自己添加定义。
评论
0赞
meJustAndrew
8/21/2023
即使我没有更改任何内容,我也不会再收到此错误。而且我没有看到它被添加到全局 json 中。我仍然会接受这个答案,因为它清除了错误背后的原因,而且信息量很大。由于缺乏支持,我现在也放弃了 Sanitizer 的使用。非常感谢你的帮助,Wing!
评论