Как правильно привязать текущий контекст объекта в ES6 с помощью babelify

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

class SomeClass {

  search() => { ... }

}

Это 100% допустимый код, однако babelify не хочет его компилировать

SyntaxError: /Users/vladmiller/Projects/test/test/client/test/app/pages/Search.react.js: Unexpected token (50:26) while parsing file: /Users/vladmiller/Projects/test/test/client/test/app/pages/Search.react.js\

Вместо этого теперь я должен связать контекст в конструкторе класса

class SomeClass {
  constructor() {
    this.search = this.search.bind(this)
  }
  search() { ... }
}

Что довольно раздражает и скучно.

UPD: Оказывается, это неверный синтаксис ES6; поэтому вопрос заключается в следующем. Каков наилучший способ связать контекст экземпляра с методом класса?

UPD2: по умолчанию должен быть прикреплен контекст, однако проблема с React http://jsbin.com/citafaradu/2/edit?js,console,output

1 ответ

Решение

Этот код недействителен ES2015. Методы прототипа определяются следующим образом:

class SomeClass {

  search() { /* ... */ }

}
Другие вопросы по тегам