VSCode 在 React 的 JSX 中错误地格式化三元

VSCode formatting ternary incorrectly within React's JSX

我正在 运行 VSCode 开发我的 React 应用程序。我有一个简单的三元组:

{isLoading ? (
    <Spinner />
) : (
    <Content />
)}

...但是,当我保存时,它的格式为:

{isLoading ? (
    <Spinner />
) : (
        <Content />
)}

...我的 linter(正确地)给了我以下错误:

Expected indentation of 5 tabs but found 6 eslint/indent

每当我按 CTRL+S 键时,缩进会在一瞬间自行纠正,然后返回到不正确的状态,红线表示有问题。

问题是我的 VSCode 设置是这样的:

"editor.formatOnSave": true

...我也有这个:

"editor.codeActionsOnSave": {
  "source.fixAll": true
},

我的 linter 和 VSCode 格式冲突。但是,即使我禁用 settings.json 文件中的所有默认格式设置选项,这个问题仍然存在。如果我关闭 formatOnSave,当我手动格式化代码时,问题会再次出现。

我不明白为什么他们不能共存。为什么我的 VSCode 格式化程序弄乱了我的 JSX,即使我没有在 settings.json 中指定任何内容?

我能找到的唯一解决方案是关闭自动格式化并完全依赖 ESLint 来格式化我的代码,然后在需要时手动格式化(使用 ALT+SHIFT+F)。

这并不理想,但似乎没有替代方案。很高兴被纠正。