-1

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

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

12 | 常量解析= 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;
4

2 回答 2

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;
于 2018-09-12T04:40:58.737 回答
0

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

尝试改变:

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

至:

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

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

于 2018-12-10T16:46:21.230 回答