2017-11-22 8 views
0

初めてvuetify/nuxtフロントエンドを構築しました。default.vueレイアウトからv-navigation-drawerコンポーネントを移動して、独自のコンポーネントで再利用できるようにしました複数のレイアウトでVuetifyでオーバーレイされたコンポーネントの状態を管理する

この引き出しのための活性化因子は、まだdefault.vueコンポーネントのまま、私はvuexするsidebar状態を追加しました:

export const state =() => ({ 
    baseurl: 'http://example.com/api/', 
    sidebar: false, 
    authenticated: false, 
    token: null, 
    user: null, 
}) 

サイドバーのためのmutatorはそうのようになります。

export const mutations = { 
    toggleSidebar(state) { 
     state.sidebar = !state.sidebar; 
    } 
} 

これは動作します(オーバーレイをオフにしていれば)サイドバーをクリックすると、vuexは大きなエラーを投げます:

enter image description here

vuexでこの作業を正しく行うにはどうすればよいですか?

答えて

3

代わりの$store.state.sidebarに直接引き出しのモデルを結合、引き出しのコンポーネントで計算されたセッターを使用します。

<template> 
    <v-navigation-drawer v-model="drawer" ...> 
</template> 

<script> 
    export default { 
    computed: { 
     drawer: { 
     get() { 
      return this.$store.state.sidebar 
     }, 
     set (val) { 
      this.$store.commit('sidebar', val) 
     } 
     } 
    } 
    } 
</script> 

https://vuejs.org/v2/guide/computed.html#Computed-Setter
https://vuex.vuejs.org/en/forms.html

+0

あなたは私の友人フリッピンの天才です!私の功績として、私はこれに非常に近いものでした...私は突然変異に価値を渡していませんでした。しかし、最終的に太陽の下ですべてを試した後....ビンゴ!ありがとう、トン。 –

関連する問題