Vue 2 with 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 with 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
-包含一个getter名称(parent
或collection
)的字符串。
getter-parent:
parent: (state) => state.getStacFromLink('parent'),
其中getStacFromLink
也是一个getter。
getter-collection:
collection: (state) => state.getStacFromLink('collection'),
看起来被调用的parent
或collection
getter没有获取Store的状态。
1条答案
按热度按时间cyej8jka1#
你的解决办法对我来说似乎有点太复杂了。
如果两个getter函数
parent
和collection
都只是用硬编码的rel
调用getStacFromLink
,那么为什么不简单地我还没有找到一种在
Pinia
中动态访问getter的方法。我觉得这样很好。考虑过度考虑你的getter和商店设计。