javascript - 意外的 token PropTypes

标签 javascript reactjs ecmascript-6 babeljs

我正在使用 "react": "^15.3.2" 并且我希望对 PropTypes 的支持是开箱即用的。

但是,以下每个语句都以错误结束,我正在考虑解决这个问题。

import React, { Component, PropTypes } from 'react';

...

static defaultProps = {
  evalScripts: 'never',
  callback: () => {}
}

static propTypes = {
  path: PropTypes.string.isRequired,
  className: PropTypes.string,
  evalScripts: PropTypes.oneOf(['always', 'once', 'never']),
  fallbackPath: PropTypes.string,
  callback: PropTypes.func
}

错误:

Error thrown for request: /js/application.js
SyntaxError: /home/user/react-project/client/scripts/reactsvg.js: Unexpected token (6:22)
export default class ReactSVG extends Component {

  static defaultProps = {
    evalScripts: 'never',
    callback: () => {}
  }
    at Parser.pp.raise (/home/user/react-project/node_modules/babylon/lib/parser/location.js:24:13)
    at Parser.pp.unexpected (/home/user/react-project/node_modules/babylon/lib/parser/util.js:82:8)
    at Parser.pp.parseClassProperty (/home/user/react-project/node_modules/babylon/lib/parser/statement.js:624:61)
    at Parser.parseClassProperty (/home/user/react-project/node_modules/babylon/lib/plugins/flow.js:836:20)
    at Parser.pp.parseClass (/home/user/react-project/node_modules/babylon/lib/parser/statement.js:567:32)
    at Parser.pp.parseExprAtom (/home/user/react-project/node_modules/babylon/lib/parser/expression.js:405:19)
    at Parser.parseExprAtom (/home/user/react-project/node_modules/babylon/lib/plugins/jsx/index.js:412:22)
    at Parser.pp.parseExprSubscripts (/home/user/react-project/node_modules/babylon/lib/parser/expression.js:236:19)
    at Parser.pp.parseMaybeUnary (/home/user/react-project/node_modules/babylon/lib/parser/expression.js:217:19)
    at Parser.pp.parseExprOps (/home/user/react-project/node_modules/babylon/lib/parser/expression.js:163:19)
    at Parser.pp.parseMaybeConditional (/home/user/react-project/node_modules/babylon/lib/parser/expression.js:145:19)
    at Parser.pp.parseMaybeAssign (/home/user/react-project/node_modules/babylon/lib/parser/expression.js:112:19)
    at Parser.pp.parseExport (/home/user/react-project/node_modules/babylon/lib/parser/statement.js:682:21)
    at Parser.parseExport (/home/user/react-project/node_modules/babylon/lib/plugins/flow.js:713:20)
    at Parser.pp.parseStatement (/home/user/react-project/node_modules/babylon/lib/parser/statement.js:115:90)
    at Parser.parseStatement (/home/user/react-project/node_modules/babylon/lib/plugins/flow.js:655:22)
    at Parser.pp.parseTopLevel (/home/user/react-project/node_modules/babylon/lib/parser/statement.js:30:21)
    at Parser.parse (/home/user/react-project/node_modules/babylon/lib/parser/index.js:70:17)
    at Object.parse (/home/user/react-project/node_modules/babylon/lib/index.js:45:50)
    at Object.exports.default (/home/user/react-project/node_modules/babel-core/lib/helpers/parse.js:36:18)
    at File.parse (/home/user/react-project/node_modules/babel-core/lib/transformation/file/index.js:574:40)
    at File.parseCode (/home/user/react-project/node_modules/babel-core/lib/transformation/file/index.js:691:20)
GET /js/application.js 500 2296.944 ms

最佳答案

您遇到语法错误。我真的不知道为什么。但这是我的赌注。

static defaultProps = { ... };

导致此错误,因为这是一个 ES7 功能。也许您可以使用 babel-preset-es2017 预设来解决此问题。或者只是使用

ReactSVG.defaultProps = { ... };

这在语义上是相同的。

关于javascript - 意外的 token PropTypes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40063241/

相关文章:

javascript - 如何根据文本区域中的文本使链接可点击或不可点击?

javascript - Facebook JS API 无法注销

javascript - 为什么将对象键放在方括号中(不是解构)?

javascript - ES6 : Filter data with case insensitive term

javascript - 拦截 switch default 或 case 中抛出的错误时的不同行为(React/Redux)

javascript - 使用 ng-bind-html 和默认内容操作内容

javascript - 正则表达式替换仅适用于最后一场比赛

reactjs - 使用 React : Property does not exist on type 'IntrinsicAttributes' 在 Typescript 中转译错误

forms - 输入值更改时表单字段失去焦点

javascript - reactjs Hook 中连续状态对象设置的问题