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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Nuxt.js

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

Q&A

解決済

1回答

1134閲覧

ReferenceError: students is not definedを解決したい。

wattyo

総合スコア10

Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Nuxt.js

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

0グッド

0クリップ

投稿2020/10/23 03:15

前提・実現したいこと

nuxt.jsで生徒の管理アプリを作っています。

js

1created: function() { 2 this.$store.dispatch('add/init') 3 },

上の部分のコメントを外すと
以下のエラーが出て解決できず困っています。

発生している問題・エラーメッセージ

ReferenceError: students is not defined

該当のソースコード

add.vue

vue

1<template> 2 <v-app> 3 <v-main> 4 <v-container> 5 <v-row> 6 <v-col> 7 <v-row justify="center"> 8 <v-icon class="ml-5"> 9 mdi-account 10 </v-icon> 11 <h1 class="ml-5">生徒管理</h1> 12 <v-spacer></v-spacer> 13 </v-row> 14 <v-divider color="blue"/> 15 </v-col> 16 </v-row> 17 <ValidationObserver ref="observer" v-slot="{ invalid }" immediate> 18 <v-form @submit.prevent="registration" v-model="valid"> 19 <Name /> 20 <Kana /> 21 <GenderLilationship /> 22 <BirthdayPhoneNumber /> 23 <Address /> 24 <v-spacer /> 25 <Building /> 26 <Remark /> 27 <v-row dense> 28 <v-col justify="center" align="center"> 29 <v-btn type="submit" to="/" nuxt color="success" :disabled="invalid">送信</v-btn> 30 </v-col> 31 </v-row> 32 </v-form> 33 </ValidationObserver> 34 </v-container> 35 </v-main> 36 </v-app> 37</template> 38 39<script> 4041export default { 42 components : { 4344 }, 45 data() { 46 return { 47 valid: false, 48 students: [], 49 } 50 }, 51 created: function() { 52 this.$store.dispatch('add/init') 53 }, //ここをコメントから外すとエラーが出ます。 54 methods: { 55 registration() { 56 this.$store.dispatch('add/add', this.firstName) 57 this.firstName = '' 58 } //ここも 59 }, 60} 61</script>

####add.js

js

1import { firestoreAction } from 'vuexfire' 2import firebase from '~/plugins/firebase' 3import 'firebase/firestore' 4 5const db = firebase.firestore() 6const studentsRef = db.collection('students') 7 8export const state = () => ({ 9 stutents: [] 10}) 11 12export const actions = { 13 init: firestoreAction(({ bindFirestoreRef }) => { 14 bindFirestoreRef('students', students) 15 }), 16 add: firestoreAction((context, firstName) => { 17 if(firstName.trim()) { 18 studentsRef.add({ 19 firstName: firstName, 20 }) 21 } 22 }) 23}

試したこと

定義されていないのであれば、dataにstudents[]を入れてみましたが、変わらず。他解決方法が浮かびません。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答1

0

自己解決

解決しました。上記コードをindex.vueに写し

js

1import { db } from '~/plugins/firebase.js'

を追加し

js

1created: function () { 2 this.$store.dispatch('add/init', db.collection('students')) 3 },

に変更することで解決しました。

投稿2020/10/23 06:26

wattyo

総合スコア10

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問