index.vue
data: function () { return { isLogin: '' } }, async asyncData ({store}) { console.log("asyncdataテスト") console.log(store.state.isLogin) return { isLogin:store.state.isLogin } }
store/index.js
import Vuex from 'vuex' const store = () => { return new Vuex.Store({ state: { uid: '', name: '', isLogin: '' }, mutations: { login (state, user) { state.uid = user.uid state.name = user.displayName state.isLogin = user.isLogin console.log('login完了') console.log(state.isLogin) }, logout (state) { state.user = null console.log('logout完了') console.log(state.isLogin) } } }) } export default store
上記のコードで下記のことをしたいと考えています。
- storeからisLogin(ログイン情報)を取得
- asyncdata経由でdataのisLoginに格納
- isLoginを使ってviewのレンダリングを出し分けたい
ただ実際には
console.log("asyncdataテスト")
console.log(store.state.isLogin)
store.state.isLoginがnullになっています。store自体は渡ってきています。
contextの使い方がうまくいってなくstoreの情報を取得できていないと思うのですが良い書き方ないでしょうか?
回答1件
あなたの回答
tips
プレビュー