ESLint问题记录



报错——ESLint: Unary operator ‘++’ used. (no-plusplus)

for (let i = 0; i < selectedRows.length; i++) {
 UnitKeys[i] = selectedRows[i].unit_id;
 }


原因ESLint没有++操作符,可改为

for (let i = 0; i < selectedRows.length; i += 1) {
 UnitKeys[i] = selectedRows[i].unit_id;
 }



报错——ESLint: Expected ‘===’ and instead saw ‘==’. (eqeqeq)

所有的==判断改成用超严格===



报错——ESLint: ‘_’ is not defined. (no-undef)

效果可实现转化为string可是还是会报错语法不严格

unit: _.toString(),

改用:

unit: this.state.unitName.toString(),



报错——ESLint: Missing radix parameter. (radix)

将一段数字字符串转化为int类型。由于缺少了radix作为参数,一个介于2和36之间的整数(数学系统的基础),表示上述字符串的基数。通常js将值默认为10,即十进制,此处颇为严格。

parseInt(this.state.adminId)

建议可改为:

parseInt(this.state.adminId,10)

或取巧:

Number(this.state.adminId)

报错——use callback in setState when referencing the previous state(react/no-access-state-in-setState)

错误原因如下:在引用前一个状态时在setState中使用回调

functionincrement(){
 this.setState({value: this.state.value + 1});
}

解决方法:使用以前一个状态(prevState)作为第一个参数的回调可以避免这种情况

functionincrement(){
 this.setState(prevState => ({value: prevState.value + 1}));
}

以上具体参考了:eslint-plunt-react的List of supported rules查询报错问题 ClickHere 》

优化简写

const userList= this.props.userList;
const unitList = this.props.unitList ;
const UnitKeys = this.state.UnitKeys ;

可利用ES6的解构特性简写成:

const { userList, unitList } = this.props;
const { UnitKeys } = this.state;

模板字符串

注意!是反引号`` 包住用了${}占位符的变量。在模版字符串内使用反引号时,需要在它前面加转义符 \

`string text ${expression} string text`

Parsing error: Unexpected token 

1、确认安装eslint-plugin-vue依赖,具体可以查看上面链接;
2、在.eslint.js配置文件中添加如下配置:

解决方法参考
Vue eslint-plugin-vue

 root: true, parserOptions: { sourceType: 'module' },
 parser: "vue-eslint-parser",
 env: { browser: true, node: true, es6: true, },
 rules: { 'no-console': 'off', }

JS标准库 ClickHere 》

你可能感兴趣的:(ESLint问题记录)