ESLint简单反应App.js括号后的意外换行符-paren-newline

问题描述 投票:2回答:2

这个没有意义......

之后,ESLint正在抱怨新线(第11行)。

如果我把它拿走并将Provider组件放在同一行,并从第12和13行(App组件和关闭Provider标签)中取出一个标签,那么它会抱怨:

预期结束标记以匹配开口缩进。 (反应/ JSX闭标签的位置)

如果我将它缩进到开始标记的级别,现在开始16个字符因为我必须删除新行,我得到另一个错误:预期缩进0空格字符但找到16.(react / jsx-indent)

使用适用于ESLint和AirBNB规范的React / Redux是否有正确的语法?

import React from 'react';
import ReactDOM from 'react-dom';
import { Provider } from 'react-redux';
import './index.css';
import App from './components/App';
import registerServiceWorker from './registerServiceWorker';
import configureStore from './state/store/configureStore';

window.store = configureStore();

ReactDOM.render(
  <Provider store={window.store}>
    <App />
  </Provider>, document.getElementById('root'));
registerServiceWorker();
reactjs react-redux eslint
2个回答
4
投票

似乎airbnb使用function-paren-newline: 'multiline'作为规则,这意味着它应该通过:

ReactDOM.render(
  <Provider store={window.store}>
    <App />
  </Provider>,
  document.getElementById('root')
);

我想你只需要在一个单独的行上提出每个论点。

更新:请参阅eslint.org上的demo of the rule passing/failing


1
投票

在下一个示例中失败,createDevTools fn:

eslint:function-paren-newline'('后面的意外换行符。

eslint:function-paren-newline')之前的意外换行符。

import React from 'react';
import { createDevTools } from 'redux-devtools';
import DockMonitor from 'redux-devtools-dock-monitor';
import LogMonitor from 'redux-devtools-log-monitor';
import SliderMonitor from 'redux-slider-monitor';

export default createDevTools(
  <DockMonitor defaultIsVisible="true" toggleVisibilityKey="ctrl-h" changePositionKey="ctrl-w" changeMonitorKey="ctrl-m">
    <LogMonitor />
    <SliderMonitor keyboardEnabled />
  </DockMonitor>
);
© www.soinside.com 2019 - 2024. All rights reserved.