首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ESLint eslint-plugin反应箭头函数

ESLint eslint-plugin反应箭头函数
EN

Stack Overflow用户
提问于 2017-04-17 13:46:02
回答 1查看 4K关注 0票数 0

在使用ESLint插件的react组件中,我遇到了一些eslint-plugin-react和箭头函数的问题。我只是做了这些命令:

  1. npm i -g eslint eslint-plugin-react
  2. eslint SignUpPage.jsx

下面是SignUpPage:

代码语言:javascript
复制
/**
 * Created by jwilso37 on 4/5/2017.
 */

import React from 'react';
import SignUpForm from '../components/landing/SignUpForm.jsx';
import 'whatwg-fetch'


class SignUpPage extends React.Component {

    constructor(props) {
        super(props);

        this.state = {
            errors: {},
            user: {
                email: '',
                name: '',
                password: ''
            }
        };
    }

    /**
     * Change the user object.
     *
     * @param {object} e - the JavaScript event object
     */

    changeUser = (e) => {
        const field = e.target.name;
        const user = this.state.user;
        user[field] = e.target.value;

        this.setState({
            user
        });
    };

    /**
     * Handles processForm event and submits request to server.
     * @param e
     */
    processForm = (e) => {
        e.preventDefault();
        const form = document.querySelector('form');
        const formData = new FormData(form);

        fetch('/api/signup', {
            method: 'POST',
            body: formData
        }).then(response => {
            if (response.ok) {
                this.setState({
                    errors: {}
                });
            }
            else {
                // returned > 300 status code
                response.json().then(j => {
                    const errors = j.errors ? j.errors : {};
                    errors.summary = j.message;
                    this.setState({
                        errors: errors
                    })
                })
            }
        })
    };


    /**
     * Render the component.
     */
    render() {
        return (
            <SignUpForm
                onSubmit={this.processForm}
                onChange={this.changeUser}
                errors={this.state.errors}
                user={this.state.user}
            />
        );
    }

}

export default SignUpPage;

但令人奇怪的是,eslint的输出是这样的:

代码语言:javascript
复制
ubuntu@ETFly:/vagrant/client/src/containers$ eslint signuppage.jsx

/vagrant/client/src/containers/signuppage.jsx
  31:16  error  Parsing error: Unexpected token =

=匿名函数上的changeUser签名是一个错误吗?这是我的.eslintrc.json

代码语言:javascript
复制
{
  "plugins": [
    "react"
  ],
  "settings": {
    "react": {
      "createClass": "createClass", // Regex for Component Factory to use, default to "createClass"
      "pragma": "React",  // Pragma to use, default to "React"
      "version": "15.0" // React version, default to the latest React stable release
    }
  },
  "parserOptions": {
    "sourceType": "module",
    "ecmaVersion": 6,
    "ecmaFeatures": {
      "jsx": true
    }
  },
  "extends": ["eslint:recommended", "plugin:react/recommended"],
  "env": {
    "browser": true
  }
}
EN

回答 1

Stack Overflow用户

发布于 2017-04-17 14:29:12

好吧,我好像修好了。当我意识到我的babel-eslint扩展操作符也不起作用后,我就用npm i --save-dev babel-eslint安装了它。这让我觉得ES6的东西都搞砸了。现在,我刚刚添加了babel-eslint解析器,将"parser": "babel-eslint"添加到"parser": "babel-eslint"文件的末尾,一切都很好!我想默认的eslint解析器不支持这些特性..。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43452746

复制
相关文章

相似问题

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