Как правильно привязать текущий контекст объекта в 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() { /* ... */ }
}