Доступ к геттеру из параметризованного геттера
Я создал параметризованный геттер в своем магазине Pinia, и внутри него я хотел бы получить доступ к другому геттеру того же магазина:
getters: {
// plain getter, just using the state
sum: (state) => state.a + state.b,
// parameterized getter, using the parameter & another getter
multiSum: (state) => (count) => this.sum * count
}
Это не удается, потому что
this
является
undefined
в контексте вложенной стрелочной функции (при вызове
this.sum
). Я могу обойти это, захватив экземпляр магазина:
multiSum(state) {
const store = this
return (count) => this.sum * store.count
}
Это работает, но довольно многословно. Есть ли другой способ получить доступ к другим геттерам из такой вложенной стрелочной функции?
1 ответ
может быть
undefined
внутри функции стрелки, потому что она не взаимозаменяема с обычной функцией и получает контекст из родительской области.
Использование и подробно описано в документации . Либо, либо можно использовать, но у него лучше Typescript и, следовательно, поддержка IDE.
В первом фрагменте
state
уже доступен в области функций, нет необходимости в доступе:
multiSum: (state) => (count) => state.sum * count
Во втором фрагменте
const store = this
не нужен, потому что магазин уже
this
.
multiSum() {
return (count) => this.sum * count
}