开发者问题收集

如何从 pinia 商店调用操作?

2022-04-27
18395

如何在 vue 3 组件中从 pinia 商店调用操作? 我使用 Composition 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");
}
2个回答

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

 const store = useLessonsNStore()

 store.openLessonCard()
duynhanf
2022-05-10

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

您在示例代码中使用 <script setup>

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

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

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

pedrozopayares
2022-07-10