我對這個問題的提法感到不滿。感覺鼓勵建議改進。另外,請記住,由於忽視(無知導致煩惱),我可能有缺陷的診斷問題。對於那個很抱歉。這個沒有提供給模塊導出的上下文
在this answer它建議使用this.$store.xxx
,它在我的代碼失敗,因爲this
是不確定的。我強烈懷疑代碼作者(這將是我)所做的一些愚蠢的事情,所以我將介紹我的組件佈局的原理圖。
它的目的是讓我有一個登陸頁面index.js創建兩個組件 - 一個用於應用程序的視覺效果和一個用於存儲信息。視覺App將由導航欄(以及稍後的渲染區域)組成。導航欄將向商店(以及查看區域)發送命令,以呈現不同的* .vue文件,其中顯示錶格,列表等。
那麼,我怎樣才能看到文本這是未定義的?我的結構是完全有缺陷還是缺少一個小細節?
index.js
import Vue from "vue"
import Store from "./vuex_app/store"
import App from "./vuex_modules/app.vue"
new Vue({ el: "#app-base", components: { App }, store: Store });
store.js
import Vue from "vue";
import Vuex from "vuex";
Vue.use(Vuex);
const state = { ... };
const mutations = { ... };
export default new Vuex.Store({ state, mutations });
app.vue
<template><div id="app">App component<navigation></navigation></div></template>
<script>
import navigation from "./navigation.vue"
export default { components: { navigation } }
</script>
navigation.vue
<template><div id="nav-bar"><p v-on:click="updateData">Update</p></div></template>
<script>
import { updateData } from "../vuex_app/actions";
export default {
vuex: {
actions: { updateData },
getters: { ... }
},
methods: {
updateData:() => {
console.log("this is " + this);
this.$store.dispatch("updateData");
}
}
}
</script>
actions.js
export const updateData = ({dispatch}, data) => {
console.log("invoked updateData");
dispatch("UPDATE_DATA", data);
};
可能'不要在實例屬性...使用箭頭充當箭頭功能被綁定到父上下文,這不會是Vue的情況下,你會期望和this.myMethod將是不確定的。 '每[鏈接](https://vuejs.org/v2/guide/instance.html)可以這樣嗎?哦,並感謝這張貼..它讓我調查vue.js ... – zipzit
@zipzit很高興爲您的好奇心服務,嘿嘿。還要感謝+1。我會馬上查看這個部分,但無論如何,對我來說* this * * * undefined *似乎很奇怪。我可以看到它與預期值有什麼不同**但是沒有任何** ......? –
@zipzit我欠你一個披薩。**是** this *的問題。可能還有更多 - 我還沒有測試整個流程 - 但它絕對是一個很好的選擇。現在,如果你可以對我的設置體系結構產生一些感受,那麼我就會全神貫注。或者,相反,所有的眼睛。 –