@Valenco

Почему компонент не получает данные от pinia?

Здравствуйте ! Столкнулся с такой проблемой. Раньше пользовался vuex, но потом решил попробовать typescript и как оказалось для него лучше подходить pinia, и вот я захотел сделать простой получение данных из store

вот post.ts
export const usePostsStore = defineStore({
    id: "posts",
    state: () => ({
        posts: [] as PostInterface [],
    }),
    getters: {
        getPosts: (state) => state.posts ,
    },
    actions: {
        async fetchPosts() : Promise<PostInterface[]>  {
            return new Promise<PostInterface[]> (() => {
                this.posts.push(
                    {
                        id: 1,
                        title: "test",
                        content: "fsdfsdsdfsdfdsfsdf",
                        likes: 0
                    },
                    {
                        id: 2,
                        title: "test",
                        content: "fsdfsdsdfsdfdsfsdf",
                        likes: 0
                    }
                )
            })
        },
        
    }
})

А вот posts.vue
<template>
    <Header />
    <div class="w-2/3 mx-auto mt-10" v-for="data in posts.getPosts" >
        <Post :Item="data"/>
    </div>

</template>

<script setup lang="ts">
import Post from '../components/Post.vue';

import PostInterface from '../Models/PostInterface'
import { usePostsStore}  from  '../store/Posts'

const posts = usePostsStore()

console.log(posts.getPosts)

</script>


Но в итоге я получаю пустой массив. Пробовал напрямую к action обратится, тоже не помогло. Что я делаю не так ?
  • Вопрос задан
  • 138 просмотров
Пригласить эксперта
Ответы на вопрос 1
@MaxRyazan
state: () => ({
    count: 0,
  }),
  getters: {
    doubleCount: (state) => state.count * 2,
  },


без this
Можно в доку заглядывать =)
https://pinia-ru.netlify.app/core-concepts/getters.html
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы