当前位置: 首页 > 面试题库 >

添加类属性时反应语法错误

蓬威
2023-03-14
问题内容

我正在用babel和webpack编写React应用程序。一直到我尝试在类上添加属性之前,它一直运行得很好-特别是尝试使用React-
Toolbox(http://react-toolbox.com/#/components/dropdown)中的Dropdown 并暂时数据连接后,我直接复制了此内容:

class DropdownTest extends React.Component {
    state = {
        value: 'ES-es',
    };

    handleChange = (value) => {
        this.setState({value: value});
    };

    render () {}

这是我的稍作修改的版本:

class ChordFilters extends Component {
    state = {
      value: 'Mandolin',
    };

    handleChange = (value) => {
      this.setState({value: value});
    };

    render() {

添加state对象后,在webpack:中Syntax Error, unexpected Token,在“ state
=”声明中出现了错误。这是完整的错误:

at Parser.pp.raise (/Users/amaiale/chordb/node_modules/babel-loader/node_modules/babylon/lib/parser/location.js:24:13)
at Parser.pp.unexpected (/Users/amaiale/chordb/node_modules/babel-loader/node_modules/babylon/lib/parser/util.js:82:8)
at Parser.pp.parseClassProperty (/Users/amaiale/chordb/node_modules/babel-loader/node_modules/babylon/lib/parser/statement.js:624:61)
at Parser.parseClassProperty (/Users/amaiale/chordb/node_modules/babel-loader/node_modules/babylon/lib/plugins/flow.js:797:20)
at Parser.pp.parseClass (/Users/amaiale/chordb/node_modules/babel-loader/node_modules/babylon/lib/parser/statement.js:567:32)
at Parser.pp.parseStatement (/Users/amaiale/chordb/node_modules/babel-loader/node_modules/babylon/lib/parser/statement.js:84:19)
at Parser.parseStatement (/Users/amaiale/chordb/node_modules/babel-loader/node_modules/babylon/lib/plugins/flow.js:621:22)
at Parser.pp.parseTopLevel (/Users/amaiale/chordb/node_modules/babel-loader/node_modules/babylon/lib/parser/statement.js:30:21)
at Parser.parse (/Users/amaiale/chordb/node_modules/babel-loader/node_modules/babylon/lib/parser/index.js:70:17)
at Object.parse (/Users/amaiale/chordb/node_modules/babel-loader/node_modules/babylon/lib/index.js:45:50)
at Object.exports.default (/Users/amaiale/chordb/node_modules/babel-loader/node_modules/babel-core/lib/helpers/parse.js:36:18)
at File.parse (/Users/amaiale/chordb/node_modules/babel-loader/node_modules/babel-core/lib/transformation/file/index.js:574:40)
at File.parseCode (/Users/amaiale/chordb/node_modules/babel-loader/node_modules/babel-core/lib/transformation/file/index.js:691:20)
at /Users/amaiale/chordb/node_modules/babel-loader/node_modules/babel-core/lib/transformation/pipeline.js:167:12
at File.wrap (/Users/amaiale/chordb/node_modules/babel-loader/node_modules/babel-core/lib/transformation/file/index.js:639:16)
at Pipeline.transform (/Users/amaiale/chordb/node_modules/babel-loader/node_modules/babel-core/lib/transformation/pipeline.js:165:17)

我以前没有遇到过,但是以前我只在类中声明过方法。


问题答案:

我会确保您设置了正确的Babel。您可能缺少用于类属性的插件,这是一项实验性功能。

.babelrc

{
  "presets": ["react", "es2015"],
  "plugins": ["transform-class-properties"]
}

您可以通过npm获取插件: npm i -D babel-plugin-transform-class-properties



 类似资料:
  • 我在向Magento添加新属性集时遇到了一个问题。 在“添加新属性集”页面上,在输入名称并选择以默认为基础的新属性集之后,我单击“保存属性集”。然后页面加载大约10-15秒,并显示一个带有以下错误的白色页面:

  • 我在我的组件中接收道具。我想在此组件中添加一个带有道具的属性“LegendPosition”。我不能那样做。请帮我做这个。我已经尝试过此代码,但没有成功:

  • 我有这个密码 此代码显示所有类别。我有 如何使ifadd attribute selected to select(在映射函数中)

  • 当我创建OpenSSL证书时,会要求我输入其他属性,如国家代码、州或省名称、组织、组织单位名称和通用名称。在输入所有这些之后,我被要求输入共同的名字和电子邮件地址。我已经进去了。我已输入如下 在这之后,我被要求输入密码,我也输入了它。如下所示: 有人能帮我吗?提前致谢

  • 问题内容: 这是我的代码,直接来自一个类。我的问题是第22行在。 我看不到问题,这是Zend Engine的限制吗?还是我瞎了。 问题答案: 在5.6之前的PHP版本中初始化类属性时,不能使用 非常量值 。 这些是在编译时初始化的,在编译时PHP将不进行任何计算或执行任何代码。是需要评估的表达式,您不能在那里进行评估。可以将其替换为常数,也可以在中进行计算。 2014年推出的PHP 5.6 允许“

  • 我需要react js中的语法帮助, 我希望在这条道路上取得这样的成就 以下代码不起作用 尽管如此,这适用于 我应该如何附加这样的字符串值以便它理解?