Как мы получаем доступ к маршруту koa js context
(this) и es6 class this
в классе es6?Работа с маршрутами koa js и классом es6
При попытке доступа класса свойство с помощью this.name
я получить неопределенные
test.js
export default class {
constructor (opts) {
this.name = 'test'
}
welcome() {
console.log(this.name) // 'this' is UNDEFINED. Trying to access class property. But getting undefined
this.body = 'welcome '+this.params.name // 'this' works fine here as a koa reference
}
}
app.js
import test from './test'
let Test = new test({})
router.get('/test/:name', Test.welcome)
Контекст теряется при передаче обратного вызова в качестве параметра, например 'Test.welcome'. Просто используйте '() => Test.welcome()' вместо этого. – Andrey
Ваша капитализация нечетная. Классы должны быть в верхнем регистре, в нижнем регистре. – Bergi
Используйте 'router.get ('/ test /: name', function() {Test.welcome (this)})' и добавьте параметр 'context' к вашему методу – Bergi