前提・実現したいこと
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> 40略 41export default { 42 components : { 43 略 44 }, 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/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。