jsx-one-expression-per-line
1行につき1つのJSX要素を許可します。
注:修正機能は、同じ行にあるすべての式間に改行を挿入します。
ルール詳細
このルールの**不正な**コードの例
jsx
/* eslint @stylistic/jsx-one-expression-per-line: "error" */
<App><Hello /></App>
<App><Hello />
</App>
<App>
<Hello>
</Hello></App>
<App>
<Hello /> World
</App>
<App>
<Hello /> { 'World' }
</App>
<App>
<Hello /> { this.world() }
</App>
<App>
{ 'Hello' }{ ' ' }{ 'World' }
</App>
<App
foo
><Hello />
</App>
<App><Hello
foo
/>
</App>
<App><Hello1 />
<Hello2 />
<Hello3 />
</App>
このルールの**正しい**コードの例
jsx
<App>
<Hello />
</App>
<App>
<Hello>
</Hello>
</App>
<App>
<Hello />
World
</App>
<App>
<Hello />
{ 'World' }
</App>
<App>
<Hello />
{ this.world() }
</App>
<App>
{ 'Hello' }
{ ' ' }
{ 'World' }
</App>
<App
foo
>
<Hello />
</App>
<App>
<Hello
foo
/>
</App>
<App>
<Hello1 />
<Hello2 />
<Hello3 />
</App>
ルールオプション
js
...
"@stylistic/jsx/jsx-one-expression-per-line": [<enabled>, { "allow": "none"|"literal"|"single-child"|"non-jsx" }]
...
allow
デフォルトはnone
です。
"literal"
として設定した場合のこのルールの**正しい**コードの例
jsx
<App>Hello</App>
"single-child"
として設定した場合のこのルールの**正しい**コードの例
jsx
<App>Hello</App>
<App>{"Hello"}</App>
<App><Hello /></App>
"single-line"
として設定した場合のこのルールの**正しい**コードの例
jsx
<App>Hello <span>ESLint</span></App>
<App>{"Hello"} {"ESLint"}</App>
<App>
<Hello /> <ESLint />
</App>
"non-jsx"
として設定した場合のこのルールの**正しい**コードの例
jsx
<App>Hello {someVariable}</App>
<App>Hello {<Hello />} there!</App>
<App>
Hello
<Hello />
there!
</App>
正しい
不正