【问题标题】:Unable to use esprima with ReactJS - Unexpected token无法将 esprima 与 ReactJS 一起使用 - 意外令牌
【发布时间】:2018-08-30 06:14:54
【问题描述】:

我正在尝试在 react js 中使用 esprima 解析函数参数。我收到以下错误

错误:第 1 行:意外标记 ( ▶ 9 个堆栈帧被折叠。 应用程序渲染 src/v4/EsprimaTest.js:12:29 9 | 10 | 11 |渲染() {

12 | const parsed=esprimaFB.parse(this.sum.toString()) | ^ 13 | const parsed1=esprima.parse(this.sum.toString()) 14 |返回 ( 15 | 查看编译

我的源代码如下。我尝试了 esprima 和 esprima-fb

import React from "react";
var  esprimaFB = require("esprima-fb");
var  esprima = require("esprima");

class App extends React.Component {
  sum = (a,b)=>{
    return a+b;
}


  render() {
    const  parsed= esprimaFB.parse(this.sum.toString())
    const  parsed1= esprima.parse(this.sum.toString())
    return (
    <div>
      <div>{JSON.stringify(parsed)}</div>
      <div>{JSON.stringify(parsed1)}</div>
    </div>
    );
  }
}
export default App;

【问题讨论】:

    标签: reactjs esprima


    【解决方案1】:

    我可以通过将 sum 函数移到课堂外来解决这个问题。但不知道为什么它在类范围内时没有运行。

    import React from "react";
    var  esprimaFB = require("esprima-fb");
    var  esprima = require("esprima");
    
     const sum = (a,b)=>{
        return a+b;
    }
    class App extends React.Component {
    
    
    
      render() {
    
        const  parsed= esprima.parse(sum.toString())
        return (
        <div>
          <div>{JSON.stringify(parsed)}</div>
    
        </div>
        );
      }
    }
    export default App;
    

    【讨论】:

      【解决方案2】:

      当你在类中使用 sum 时,你就有了一个箭头函数。

      尝试改变:

      esprimaFB.parse(this.sum.toString())
      

      收件人:

      esprimaFB.parse(this.sum().toString())
      

      不知道你遇到的错误是不是和这个有关,试试看。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-11-24
        • 2019-05-26
        • 2016-05-03
        • 2018-04-17
        • 2016-06-15
        • 2020-11-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多