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

时间:2017-10-22 00:13:55

标签: reactjs react-redux eslint

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

ESLint对此后的新行(第11行)抱怨。

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

预期结束标记以匹配开口缩进。 (反应/ 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();
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分: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 :(得分: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>
);

答案 2 :(得分:0)

在出现此错误的文件顶部添加以下行。

/* eslint-disable func-call-spacing */

这将禁用func-call-spacing的掉毛