Невозможно использовать esprima с ReactJS - неожиданный токен - PullRequest
0 голосов
/ 30 августа 2018

Я пытаюсь проанализировать параметры функции с esprima в реагировать JS. Я получаю следующую ошибку

Ошибка: строка 1: неожиданный токен ( ▶ 9 стековых кадров были свернуты. App.render 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 голосов
/ 10 декабря 2018

Когда вы используете sum внутри класса, у вас есть функция стрелки.

Попробуйте изменить:

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

Кому:

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

Я не знаю, была ли связанная с этим ошибка, попробуйте.

0 голосов
/ 12 сентября 2018

Я могу решить проблему, переместив функцию суммы за пределы класса. Но не знает, почему он не запускался, когда находился в области видимости.

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;
...