Динамические геттеры в pinia - Vue 3
Всем привет!
Есть код на Vue 2 c Vuex 3.4:
getLink: (state, getters) => rel => {
let link = state.data?.getLinkWithRel(rel);
let stac = getters[rel];
let title = STAC.getDisplayTitle([stac, link]);
if (link) {
link = Object.assign({}, link);
link.title = title;
}
else if (stac instanceof STAC) {
return {
href: stac.getAbsoluteUrl(),
title,
rel
};
}
return link;
},
Данный код надо перенести на Vue 3 с pinia. Сделал следующее:
getLink: (state) => (rel) => {
let link = state.data?.getLinkWithRel(rel);
let stac = state[rel];
let title = STAC.getDisplayTitle([stac, link]);
if (link) {
link = { ...link };
link.title = title;
}
else if (stac instanceof STAC) {
return {
href: stac.getAbsoluteUrl(),
title,
rel
};
}
return link;
},
Переменная stac содержит значения или null или undefined.
При использовании 1-й версии, stac содержит данные выдаваемые вызываемой функцией getters[rel].
Как мне написать или заставить pinia отдать данные?
Дополнительные данные:
rel - содержит строку с одним из названий геттеров (parent или collection).
Getter - parent:
parent: (state) => state.getStacFromLink('parent'),
Где getStacFromLink тоже getter.
Getter - collection:
collection: (state) => state.getStacFromLink('collection'),
Складывается такое ощущение, что вызываемые гетеры parent или collection не получают состояние Стора.