首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修复嵌套样式组件中的缩进eslint错误?

如何修复嵌套样式组件中的缩进eslint错误?
EN

Stack Overflow用户
提问于 2018-03-11 02:31:08
回答 3查看 3K关注 0票数 4

如何修复这个重复错误?

我想写下面的格式。

代码语言:javascript
复制
const Hoge = styled.div`
  ...

  .class {
    color: ${props =>
      props.a !== 'aaaaaa' &&
      props.b !== 'bbbbbb' &&
      '#ccc'};
  }
`

但是这种格式有重复错误。

错误:4空格的预期缩进,但发现6. (缩进)

我想知道如何解决这个问题。

我正在使用下面的版本。

代码语言:javascript
复制
"styled-components": "^3.1.6",
"eslint": "^4.17.0",
"eslint-config-prettier": "^2.9.0",
"eslint-plugin-prettier": "^2.6.0",
"prettier": "^1.10.2",
"prettier-eslint": "^8.8.1",

缩进的静音设置就在下面。

代码语言:javascript
复制
 "indent": ["error", 2, { "SwitchCase": 1 }],
EN

回答 3

Stack Overflow用户

发布于 2019-02-07 06:05:25

首先,eslint的indent规则工作正常,参见这里。如果您想继续使用样式化的组件并坚持indent的linter配置,最简单的解决方案可能不是内联编写插值函数,而是将其赋值给一个变量。

例如:

代码语言:javascript
复制
const getColorForClass = ({ a, b }) => {
  return a !== 'aaaaaa' && b !== 'bbbbbb' && '#ccc'
}

const Hoge = styled.div`
  .class {
    color: ${getColorForClass};
  }
`
票数 3
EN

Stack Overflow用户

发布于 2022-05-16 12:39:30

通过在eslint配置中添加一个异常,我可以忽略相关的块,这样自动修复就不会破坏代码。您仍然需要手动管理它,但至少它保留了您所写的内容

.eslintrc.js

代码语言:javascript
复制
const styledComponentArrowFn =
  'TaggedTemplateExpression > TemplateLiteral > ArrowFunctionExpression';

const ignoredNodes = [
  styledComponentArrowFn,
  `${styledComponentArrowFn} > BlockStatement`,
];

module.exports = {
  rules: {
    'indent': ['error', 2, {
      ignoredNodes,
    }],
  }
}

参考资料:https://eslint.org/docs/rules/indent#ignorednodes

票数 1
EN

Stack Overflow用户

发布于 2018-03-17 15:45:30

我想指出,这需要修复一些if/ case,以正确处理成功/错误案例,否则您将以

代码语言:javascript
复制
.class {
  color:
}

所以我建议采用这种方法,幸运的是,它本身解决了这个问题。

代码语言:javascript
复制
.class {
  ${props =>
    props.a !== 'aaaaaa' &&
    props.b !== 'bbbbbb' && 'color: #ccc'
  };
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49216073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档