如何调用Pinia商店的动作?

发布于 2025-01-24 12:28:06 字数 667 浏览 0 评论 0原文

如何在VUE 3组件中从Pinia商店调用动作? 我使用构图API。 例如,我想导入“ openlessoncard” - 这是Pinia商店中的动作。 但是这种导入方法不起作用。

<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");
}

How I can call action from pinia store in vue 3 component?
I use composition API.
For example, I would like to import 'openLessonCard' - it is action in pinia store.
But this method for import don't work..

<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");
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

夜吻♂芭芘 2025-01-31 12:28:06

您需要创建一个商店实例并调用操作

 const store = useLessonsNStore()

 store.openLessonCard()

You need to create a store instance and call actions

 const store = useLessonsNStore()

 store.openLessonCard()
黑凤梨 2025-01-31 12:28:06

请记住,“动作相当于组件中的方法”(Pinia文档)。

您在示例代码中使用&lt; script设置&gt;

然后,在您的组件中...

  1. 正常导入商店:
import { useLessonsNStore } from '../../stores/lessonsN';
  1. 获取商店的实例:
const lessonsN = useLessonsNStore();
  1. 像方法一样调用操作
lessonsN.openLessonCard();

更多信息:在此处输入链接描述

Remember, "Actions are the equivalent of methods in components" (Pinia documentation).

You are using <script setup> in your example code.

Then, in your component...

  1. Import your store normally:
import { useLessonsNStore } from '../../stores/lessonsN';
  1. Get an instance of your store:
const lessonsN = useLessonsNStore();
  1. Invoke the action like a method
lessonsN.openLessonCard();

More info: enter link description here

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文