javascript 如何从Pinia商店调用行动?

a0x5cqrl  于 2023-01-04  发布在  Java
关注(0)|答案(2)|浏览(152)

如何在vue 3组件中调用pinia商店中的action?我使用合成API。例如,我想导入'openLessonCard' -它是pinia商店中的action。但是这个导入方法不起作用。

<script setup>
import { openLessonCard } from '../../stores/lessonsN.js';
import { ref, computed } from 'vue'

defineProps({
  data: {
    type: Object,
    required: true,
  },
  nocollapse: {
  type: Boolean,
  },
});

const reviewLevel = computed(() => {
  return Object.values(this.data.criteria).filter((i) => i === true).length;
})

async function editReviews(id, text, a, b, c, d, e) {
  let review = await this.$api.call("reviews.edit", {
    id,
    text,
    a,
    b,
    c,
    d,
    e,
  });
  this.$Message("ok");
}
xmd2e60i

xmd2e60i1#

请记住,“操作等同于组件中的方法”(Pinia文档)。
在示例代码中使用的是<script setup>
然后,在您的组件中...
1.正常导入您的商店:

import { useLessonsNStore } from '../../stores/lessonsN';

1.获取商店的示例:

const lessonsN = useLessonsNStore();

1.像方法一样调用操作

lessonsN.openLessonCard();

更多信息:enter link description here

jmo0nnb3

jmo0nnb32#

您需要创建一个存储示例并调用操作

const store = useLessonsNStore()

 store.openLessonCard()

相关问题