获取当前 Pinia store 的引用的方法:动态组合操作
P粉195200437
2023-08-14 14:12:02
<p>这是我想要的“大致”内容:</p>
<pre class="brush:php;toolbar:false;">// 这是一个通用的可组合函数:
function export useGeneric() {
function genericAct(){
const store = getCurrentStore(); // 这是我需要的
store.a.value = 42;
store.act2(); // 这个动作应该在存储中使用通用函数实现
}
return {genericAct}
}
// 这是一个使用它的示例存储
export const useMyStore = defineStore('myStore', () => {
const a = ref(1);
const b = ref(1);
const {genericAct} = useGeneric();
function act2(){
b.value = 43;
}
return {a, b, genericAct, act2};
}</pre>
<p>我如何获取绑定了该动作的存储?(或者如何将它作为<code>useGeneric</code>的参数传递?)</p>
<p>(当然,这只是一个最简单的示例。在实际应用中,我会用这个做更多有用的事情...)</p>
我不知道这是否是最好的方法,你也可以考虑 @Estus Flask 的评论:
但是我最终选择将
useMyStore
作为参数传递。请注意,它应该在每个通用操作中调用,因为在
useGeneric()
执行时,store 尚未创建。下面是代码示例: