esprima无法与ReactJS一起使用-意外令牌

时间:2018-08-30 06:14:54

标签: reactjs esprima esprima.js

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

错误:第1行:意外的令牌( ▶9个堆栈框被折叠。 渲染器 src / v4 / EsprimaTest.js:12:29    9 |   10 |   11 | render(){

  

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;

2 个答案:

答案 0 :(得分:0)

我可以通过将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;

答案 1 :(得分:0)

在类中使用 sum 时,您将具有箭头功能。

尝试更改:

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

收件人:

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

我不知道您遇到的错误是否与此有关,请尝试一下。