reactjs 如何修复此违反eslint规则的“react/no-unescaped-enttie”的情况?

s4chpxco  于 2022-11-04  发布在  React
关注(0)|答案(8)|浏览(451)

这是我的代码:

const func = () => {
  return (
    <div >
       you're free
      </div>
  )}

eslint以某种方式将该行标记为“you're free”,错误为error HTML entities must be escaped react/no-unescaped-entities
然而,从我所看到的jsx已经转义了撇号。我可以看到,单词you're free的呈现没有问题。如果我将其转义为&#39;,那么我将很难搜索字符串(我希望在编辑器中搜索you're free会返回一个命中。但显然,编辑器将错过,因为文本实际上是you&#39;re free
那么,解决eslint异常的最佳方法是什么呢?

qnakjoqk

qnakjoqk1#

推荐的解决方案是使用&apos;&lsquo;&rsquo;,而不是将其 Package 为变量。

const func = () => {
  return (
    <div >
       you&apos;re free
      </div>
  )}

为了提高搜索能力,建议您使用本地化/国际化文件,并将其调用到应用程序中。

cqoc49vn

cqoc49vn2#

顺便说一下,您可以通过添加

"rules": { "react/no-unescaped-entities": 0 }

.eslintrc文件中。

bybem2ql

bybem2ql3#

我显式地转义了整个文本块,方法是将该行包含在{" "}中:

const func = () => {
  return (
    <div >
       {" you're free "}
      </div>
  )}
uqcuzwp8

uqcuzwp84#

我遇到了与next.js相同的问题,我所做的是打开.eslintrc.json并添加以下内容:

{
  "rules": { "react/no-unescaped-entities": 0 }
}

现在,我的.eslintrc.json将如下所示:

{
  "extends": "next/core-web-vitals",
  "rules": { "react/no-unescaped-entities": 0 }
}
iqih9akk

iqih9akk5#

上面的解决方案只在某些情况下有效。它对我不起作用。在我的情况下,我想这是因为我们在项目中也使用了prettier。为了解决这个错误,我用反勾号 Package 了副本。

const func = () => {
  return (
    <div>
      {`
        You're free.
      `}
    </div>
  )
}
bttbmeg0

bttbmeg06#

这对我来说很有效,没有任何eslint错误:

const func = () => {
  return (
    <div>
      {"you're"} free
    </div>
  )
}
fd3cxomn

fd3cxomn7#

修复react/no-unescaped-entities错误的一种方法是将包含转义符的文本分配给一个变量,然后在JXS中引用该变量。
进一步阅读:

const func = () => {
  const text = `you're free`;
  return (
    <div>
      {text}
    </div>
  )}
31moq8wy

31moq8wy8#

您可以做两件事:
1.可以使用&apos;进行转义
例如:

const func = () => {
  return (
    <div >
       you&apos;re free
      </div>
  )}

1.或者您需要禁用ESLint规则,要禁用ESLint规则,首先在项目目录中找到.eslintrc.json,然后将这些行粘贴到那里。

**{

“扩展”:“下一个/核心-网-生命体征”,
“规则”:{
   “React/无未转义实体”:“关”,
   “@下一页/下一页/无页自定义字体”:“关闭”
}

}**

相关问题