Здравствуйте ! Столкнулся с такой проблемой. Раньше пользовался 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 обратится, тоже не помогло. Что я делаю не так ?