Ошибка синтаксиса в компоненте с React.createClass

#javascript #reactjs

#javascript #reactjs

Вопрос:

Я пытаюсь создать функцию в React, которая в конечном итоге должна выполнить некоторые вычисления и вернуть результат моему компоненту. Функция не выполнена, так что потерпите меня, если это не имеет смысла, куда я иду с этим.

Я использую React.createClass .

Код выглядит следующим образом

   render: function() {
    return (
      <div className="container">
         <h3 className="time">{this._getTime(1)}</h3>
      </div>
    );
  }

  _getTime(time) {
    if (time === 1) {
      return '1';
    } else if (time === 2) {
      return '2';
    } else {
      return 'stuff';
    }
  }
  

Это просто возвращает токен SyntaxError: Unexpected, указывающий на _getTime.
Есть какие-либо намеки на то, что я делаю неправильно?

Ответ №1:

Похоже, что вы используете React.createClass , который принимает аргумент объекта.

Поскольку это объект, вам нужна запятая между каждым свойством или сокращенным методом.

 var Hello = React.createClass({
  render: function() {
    return (
      <div className="container">
         <h3 className="time">{this._getTime(1)}</h3>
      </div>
    );
  }, // <--- comma added here

  _getTime(time) {
    if (time === 1) {
      return '1';
    } else if (time === 2) {
      return '2';
    } else {
      return 'stuff';
    }
  }
});
  

https://jsfiddle.net/pfnfvyb1/

class не использует разделители запятой, поэтому эта проблема часто возникает при переключении между двумя стилями.