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

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

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

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Q&A

解決済

2回答

450閲覧

vue.js エラー Property or method "name" is not defined

nnnn5

総合スコア18

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

0グッド

0クリップ

投稿2019/07/15 02:31

イメージ説明

vue.jsを勉強し始めたばかりの初心者です。
signinページからfirebaseでログイン処理を行いtopページへ遷移するような設計なのですが、このようなエラーが解決できず質問させていただきます。

signinページではエラーは出ていません。ご教授お願いします泣

Top.vue <template> <div class="hello"> <router-link to="/about" class="button is-info">topです。aboutへはこちら</router-link> <h1>Hello {{ name }}!!</h1> <h1>{{ msg }}</h1> <h2>Essential Links</h2> <ul> <li><a href="https://vuejs.org" target="_blank">Core Docs</a></li> <li><a href="https://forum.vuejs.org" target="_blank">Forum</a></li> <li><a href="https://chat.vuejs.org" target="_blank">Community Chat</a></li> <li><a href="https://twitter.com/vuejs" target="_blank">Twitter</a></li> <br> <li><a href="http://vuejs-templates.github.io/webpack/" target="_blank">Docs for This Template</a></li> </ul> <h2>Ecosystem</h2> </div> </template> <script> import firebase from 'firebase' export default { name: 'top', data () { return { msg: 'やああ', name: firebase.auth().currentUser.email } } } </script>
Signin.vue <template> <div class="signin"> <h2>Sign in</h2> <input type="text" placeholder="Username" v-model="username"> <input type="password" placeholder="Password" v-model="password"> <button class="button is-warning" @click="signIn">Signin</button> <p>You don't have an account?</p> <router-link to="/signup">create account now!!</router-link> </div> </template> <script> import firebase from 'firebase' export default { name: 'signin', data () { return { username: '', password: '' } }, methods: { signIn: function () { firebase.auth().signInWithEmailAndPassword(this.username, this.password).then( user => { alert('Success!') this.$router.push('/') }, err => { alert(err.message) } ) } } } </script> <style scoped> h1, h2 { font-weight: normal; } ul { list-style-type: none; padding: 0; } li { display: inline-block; margin: 0 10px; } a { color: #42b983; } .signin { margin-top: 20px; display: flex; flex-flow: column nowrap; justify-content: center; align-items: center; } input { margin: 10px 0; padding: 10px; } </style>

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

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

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

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

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

guest

回答2

0

ベストアンサー

ログインしていない場合は firebase.auth().currentUsernull になるために記載されたようなエラーになります。ログイン状態かどうかをチェックしてください。

js

1data: function () { 2 return { 3 msg: 'やああ', 4 name: '' 5 } 6}, 7mounted: function () { 8 const user = firebase.auth().currentUser 9 if (user) { 10 this.name = user.email 11 } else { 12 // 例えば /signin に飛ばす 13 // this.$router.push('/signin') 14 } 15}

投稿2019/07/15 18:48

YukiYamashina

総合スコア1011

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

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

nnnn5

2019/07/16 00:27

ありがとうございます!!!
guest

0

ぼくも初心者なので、見当違いの回答だったら申し訳ありません…。

Vue.jsの公式ガイドによると確かアロー関数の使用は非推奨だったと思うのですが…?
インスタンスライフサイクルフックの項目に記載してあります。
こちらfunction文に直してみても解消しませんでしょうか?
全然関係なくても、怒らないでいただけたら嬉しいです。

投稿2019/07/15 16:16

H40831

総合スコア973

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問