前提・実現したいこと
Vue.jsとLaravelでSPAを開発しており、簡易的な通知機能を実装をしています。
setIntervalで定期的にデータベースに接続し、
その返り値をもとにヘッダー部分のバッジの表示非表示を切り替えるという仕様です。※添付画像の赤いバッジです。
発生している問題・エラーメッセージ
データベースから定期的に取得したデータをもとにvueファイル側でisPushedのtrue・falseの値を更新し、
バッジの表示非表示を切り替えたいと考えており、
現状、isPushedの値の更新は行えているのですが、バッジの表示非表示が切り替わらす悩んでおります。
解決策がありましたら、ご教示いただけると嬉しいです。
※Console画面のスクショを添付させていただきます。
関係ないデータも含まれていますが、isPushedの値は変更されているようです。
該当のソースコード
[header.vue] <template> <header> <v-btn icon> <v-icon>mdi-magnify</v-icon> </v-btn> <v-btn icon> <v-icon @click="logout">mdi-logout</v-icon> </v-btn> <router-link :to="{ name: 'hogehoge'}"> <v-btn icon> <v-icon class="push_icon">mdi-bell-outline</v-icon> </v-btn> <span v-if="isPushed" class="push_circle"></span> </router-link> </header> </template> <script> export default { data() { return { count:Number, isPushed:false, }; }, created(){ this.push(); }, mounted(){ this.repush(); }, methods: { logout: function() { axios .post("logout") .then(res => { console.log(res); location.href = "/"; }) .catch(err => console.log(err)); }, push: function() { axios .get("api/user/header/", { }) .then(res => { this.count = res.data.notice; if (res.data.notice == 0){ this.isPushed = false; } else { this.isPushed = true; } }) .catch(err => console.log(err)); }, repush: function() { setInterval(function() { axios.get("api/user/header/push/aaa") .then(res => { this.count = res.data.notice; if (res.data.notice == 0){ this.isPushed = false; console.log(this.isPushed); } else { this.isPushed = true; console.log(this.isPushed); } }) .catch( error => console.log(error)); }, 3000); } } }; </script> <style scoped> .push_icon{ position: relative; } .push_circle{ border-radius: 50%; color:#222; height: 15px; width: 15px; background-color: #b22222; position:absolute; right: 20px; bottom:10px; } </style>
試したこと
①v-showを使用してみる
②watchでisPushedの変更を監視し、表示の切り替えを行えないか。
→どちらも解決には繋がりませんでした。
補足情報(FW/ツールのバージョンなど)
基本的な知識不足かと思いますが、解決策がありましたら教えていただきたいです。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/07 09:58
2020/02/07 10:12
2020/02/07 12:32 編集