如何使用 babelify 在 ES6 中正确绑定当前对象上下文
How to properly bind current object context in ES6 using babelify
我正在尝试将当前实例绑定到 class 方法,请注意 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 构造函数中绑定上下文
class SomeClass {
constructor() {
this.search = this.search.bind(this)
}
search() { ... }
}
这很烦人和无聊。
UPD: 事实证明这是无效的 ES6 语法;因此问题如下。将实例上下文绑定到 class 方法的最佳方法是什么?
UPD2: 默认情况下应该附加上下文,但是,React http://jsbin.com/citafaradu/2/edit?js,console,output
的问题
此代码在 ES2015 中无效。原型方法定义如下:
class SomeClass {
search() { /* ... */ }
}
我正在尝试将当前实例绑定到 class 方法,请注意 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 构造函数中绑定上下文
class SomeClass {
constructor() {
this.search = this.search.bind(this)
}
search() { ... }
}
这很烦人和无聊。
UPD: 事实证明这是无效的 ES6 语法;因此问题如下。将实例上下文绑定到 class 方法的最佳方法是什么?
UPD2: 默认情况下应该附加上下文,但是,React http://jsbin.com/citafaradu/2/edit?js,console,output
的问题此代码在 ES2015 中无效。原型方法定义如下:
class SomeClass {
search() { /* ... */ }
}