我正在學習 Vuejs,在我的專案中,自從我嘗試使用商店(VUEX)以來,我收到了一些警告並且沒有顯示任何內容
所以我有:
├── index.html └── src ├── views └── Feed.vue └──store └── index.ts ├── App.vue ├── main.ts
我的 main.ts 是:
// initialisation des éléments pours VUE import { createApp } from "vue"; import App from "./App.vue"; import "./registerServiceWorker"; import router from "./router"; import store from "./store"; import axios from 'axios' import VueAxios from 'vue-axios' // initialisation des imports pour Font Awesome import { library } from "@fortawesome/fontawesome-svg-core"; import { faUserSecret } from "@fortawesome/free-solid-svg-icons"; import { faSpinner, faPaperPlane, faHandPeace, faSignOutAlt, faShieldAlt, faUserPlus, faImage, faEdit, faUsersCog, faTools, faRss, faTimesCircle, } from "@fortawesome/free-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/vue-fontawesome"; // initialisation des imports pour Bootstrap import "bootstrap/dist/css/bootstrap.min.css"; import "bootstrap"; import "bootstrap/dist/js/bootstrap.js"; // intégration des icones font awesome à la librairy library.add(faUserSecret); library.add(faSpinner); library.add(faPaperPlane); library.add(faHandPeace); library.add(faSignOutAlt); library.add(faShieldAlt); library.add(faUserPlus); library.add(faImage); library.add(faEdit); library.add(faEdit); library.add(faUsersCog); library.add(faTools); library.add(faRss); library.add(faTimesCircle); // Création de l'app const app = createApp(App); app.use(store); app.use(router); app.use(VueAxios, axios); app.provide('axios', app.config.globalProperties.axios) ; app.component("font-awesome-icon", FontAwesomeIcon); app.mount("#app");
我的./store/index.ts
##
// Imports import { createApp } from 'vue' import { createStore } from 'vuex' import axios from 'axios'; //Create Store : export const store = createStore({ // Define state state () { return{ feedList: [] } }, // Define Actions actions: { getPosts( { commit } ) { axios.get('http://localhost:3001/api/feed') .then(feedList => { commit('setFeedList', feedList) }) } }, // Define mutations mutations: { setFeedList(state:any, feedList:any) { state.data = feedList } }, })
我的./views/Feed.vue:
<template> <div id="Feed"> <div id="profil" class="col-12 col-md-3"> <Cartridge /> </div> <div id="feedcontent" class="col-12 col-md-9"> <SendPost /> <div id="testlist" v-for="thePost in feedList" :key="thePost"> {{ thePost }} </div> </div> </template> <script lang="ts"> import Cartridge from '@/components/Cartridge.vue'; import SendPost from '@/components/SendPost.vue'; import { computed } from 'vue' import { useStore } from 'vuex' export default { name: 'Feed', components: { Cartridge, SendPost }, setup () { const store = useStore(); const feedList = computed(() => store.state.data.feedList); console.log("feedList > " + feedList.value); return { feedList } }, } </script> <style lang="scss"> @import "../scss/variables.scss"; #profil { position: fixed; margin: 0; height: 100%; } #feedcontent { position: fixed; height: 100%; right: 0; background-color: $groupo-colorLight1; overflow-y: scroll; ::-webkit-scrollbar { width: 8px; color: $groupo-color1; } ::-webkit-scrollbar-track { background: $groupo-colorLight2; width: 20px; -webkit-box-shadow: inset 0 0 6px rgba($groupo-color4, 0.3); } ::-webkit-scrollbar-thumb { background: $groupo-color4; } ::-webkit-scrollbar-thumb:hover { background: $groupo-color1; } } </style>
看起來我不明白 Vuex 中的某些內容,但我不知道是什麼。你能告訴我出了什麼問題嗎? (我希望事情不多:))/有人可以幫助我嗎?請。
謝謝
看起來您從
./store/index.ts
中的行收到錯誤,您試圖將函數呼叫套用到此行上的商店實例的結果匯出:export 預設儲存();
商店實例確實不是函數,您將結果匯入
main.ts
中。嘗試僅匯出商店實例:export預設商店
#也許您不需要之後的行:
不僅僅是 @Lucas David Ferrero 的真正好的答案,我在我的 Feed.vue 中忘記了一件事......:安裝了商店! 所以我的文件現在是: