Skip to content
← Back to rules

react/forbid-elements 制限

何ができるか

禁止する要素のリストを設定し、置き換えとして望む要素を指定できるようにします。

なぜ問題なのか

特定の要素の使用を他の要素に置き換えるために禁止したい場合があります。たとえば、すべての <div /> を使用しないで、代わりに <Box /> を使うようにするなどです。

このルールに対して不正なコードの例:

jsx
// ["error", { "forbid": ["button"] }]
<button />;
React.createElement("button");

// ["error", { "forbid": ["Modal"] }]
<Modal />;
React.createElement(Modal);

// ["error", { "forbid": ["Namespaced.Element"] }]
<Namespaced.Element />;
React.createElement(Namespaced.Element);

// ["error", { "forbid": [{ "element": "button", "message": "use <Button> instead" }, "input"] }]
<div>
  <button />
  <input />
</div>;
React.createElement("div", {}, React.createElement("button", {}, React.createElement("input")));

このルールに対して正しいコードの例:

jsx
// ["error", { "forbid": ["button"] }]
<Button />

// ["error", { "forbid": [{ "element": "button" }] }]
<Button />

設定

このルールは以下のプロパティを持つ設定オブジェクトを受け入れます。

forbid

type: array

禁止される要素のリストで、警告表示時に表示するための任意のメッセージも含められます。

例:

  • ["error, { "forbid": ["button"] }]
  • ["error, { "forbid": [{ "element": "button", "message": "Use <Button> instead." }] }]
  • ["error, { "forbid": [{ "element": "input" }] }]

forbid[n]

type: object | string

禁止される要素で、単純な要素名またはカスタムメッセージ付きで指定できます。

forbid[n].element

type: string

forbid[n].message

type: string

使用方法

設定ファイルや CLI でこのルールを有効化するには、次のように使用できます:

json
{
  "plugins": ["react"],
  "rules": {
    "react/forbid-elements": "error"
  }
}
bash
oxlint --deny react/forbid-elements --react-plugin

参照