eslint howto
[toc]
div
element with onClick
Although I can just attach a onClick
method to a div
's property, It would cause a chain of eslint problems.
The first one is no-static-element-interactions
, since div
and span
can not own 'semantic' behavior.
Then, the solution is to add a role="button"
to make it clickable.
After then, it trigger a new eslint problem of interactive-supports-focus
, which suggests me to add a tabIndex
property for keyboard support.
However, I didn't intend to let my div capturing 'tab' behavior. Hence, I can add a tabIndex=-1
to suppress it.
And next, another eslint problem of click-events-have-key-events
occurred, which needs me to add a aria-hidden
property.
At last, to make a div
's 'click' action qualified, I should change the div
element into like this:
<div
onClick={requestReadFile}
role={'button'}
tabIndex={-1}
aria-hidden
// id={'upload-area'}
// className={'flex justify-center items-center flex-col'}
// style={{ width: 300, border: '2px dashed' }}
>{...}</div>
ref:
- eslint-plugin-jsx-a11y/no-static-element-interactions.md at master · jsx-eslint/eslint-plugin-jsx-a11y
- eslint-plugin-jsx-a11y/interactive-supports-focus.md at master · jsx-eslint/eslint-plugin-jsx-a11y
- eslint-plugin-jsx-a11y/click-events-have-key-events.md at master · jsx-eslint/eslint-plugin-jsx-a11y
Alias error
Use this will partially cause error, since the _public
works well, while _renderer
won't.
// .eslintrc
"settings": {
"alias": {
"map": [
[ "_public", "./public" ],
[ "_renderer", "./src/renderer" ]
]
},
"import/resolver": {
"webpack": {
"config": "./webpack.config.js"
},
}
}
},
However, if I just change the config
's value into {}
, then everything goes well including import/no-extraneous-dependencies
.
// .eslintrc
"settings": {
"import/resolver": {
"webpack": {
"config": {
}
}
}
},
I don't know why, maybe it's a bug.
Here is my installed packages about eslint
:
Finally, I decided to give up the xxx-webpack
choice:
refer: