質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Nuxt.js

Nuxt.jsは、ユニバーサルなSPAが開発可能なVue.jsベースのフレームワーク。UIの描画サポートに特化しており、SSRにおけるサーバーサイドとクライアントサイドのUIレンダリングなどさまざまな機能を持ちます。

Q&A

0回答

1463閲覧

Nuxt.jsでmiddlewareを使用したらエラーがでる

Khy

総合スコア118

Nuxt.js

Nuxt.jsは、ユニバーサルなSPAが開発可能なVue.jsベースのフレームワーク。UIの描画サポートに特化しており、SSRにおけるサーバーサイドとクライアントサイドのUIレンダリングなどさまざまな機能を持ちます。

0グッド

0クリップ

投稿2019/06/25 12:26

Next.jsとfirebaseを勉強しております。

ログイン画面でTwitter認証を行ったら会員ページへ移動し、その際Twitterの表示名(displayName)などを渡したいと思っています。

会員ページに移る際middlewareを呼び出してユーザー情報を取得しようとしているのですが、commons.app.js:13284 Uncaught RangeError: Maximum call stack size exceededError: [vuex] do not mutate vuex store state outside mutation handlers.などのエラーが発生します。

何が原因なのでしょうか?

////// ログイン画面(/) /////// <template> <v-btn @click="twitterLogin">ログイン</v-btn> </template> <script> import { firebase } from '@/plugins/firebase' import 'firebase/auth' import { mapGetters } from 'vuex' export default { mounted() { firebase.auth().onAuthStateChanged((user) => { if (user) { this.$router.push('/user/' + user.uid ) } }) }, methods: { twitterLogin() { const provider = new firebase.auth.TwitterAuthProvider() firebase.auth().signInWithPopup(provider) } }, computed(){ ...mapGetters({'user'}) } } </script>
////// 会員ページ(/user/USER_ID) /////// <template> <h1>会員ページ</h1> <p>{{ user.displayName }}</p> </template> <script> export default { middleware: 'authenticated' } </script>
///// authenticated.js ////// import { firebase } from '@/plugins/firebase' import 'firebase/auth' export default function ({ route, store, redirect }) { const user = firebase.auth().currentUser //ログインしていたらStoreにユーザー情報を格納 if (user) { store.commit('setUser', user) //ログインせずに会員ページにきたらトップへ戻る } else { redirect('/') } }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問