これは私のコードです:
const func = () => {
return (
<div >
you're free
</div>
)}
どういうわけか、eslintはエラーerror HTML entities must be escaped react/no-unescaped-entities
で「あなたは自由です」という行にフラグを立てます
しかし、私が見ることができることから、jsxはすでにアポストロフィをエスケープしています。 you're free
という単語が問題なくレンダリングされていることがわかります。 '
としてエスケープすると、文字列を検索するのが非常に困難になります(エディターでyou're free
を検索するとヒットが返されることを期待します。テキストは実際にyou're free
であるため)
それでは、このエスリント例外に対処する最良の方法は何ですか?
推奨される解決策は、'
、‘
または ’
を変数としてラップする代わりに。このように:
const func = () => {
return (
<div >
you're free
</div>
)}
検索を可能にするために、ローカライズ/国際化用のファイルを用意し、それらをアプリに呼び出すことをお勧めします。
行を{" "}
で囲むことにより、テキストブロック全体を明示的にエスケープします。
const func = () => {
return (
<div >
{" you're free "}
</div>
)}
上記のソリューションは、いくつかの場合にのみ機能します。それは私のために働いていませんでした。私の場合、プロジェクトでprettier
も使用しているためだと思います。エラーを解決するために、コピーをバックティックでラップしました。
const func = () => {
return (
<div>
{`
You're free.
`}
</div>
)
}
ところで、この種の警告を無効にするには、次を追加します。
rules: { "react/no-unescaped-entities": 0 }
あなたの.eslintrc
これは私にはeslintエラーなしで機能します:
const func = () => {
return (
<div>
{"you're"} free
</div>
)
}