Динамические геттеры в 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 не получают состояние Стора.


Ответы (0 шт):