Laravel Vue Web通知组件错误

时间:2018-12-01 10:59:48

标签: javascript php laravel vue.js vue-component

我正在尝试将通知栏从组件提示显示到layout / app.blade,但控制台中发生错误。

  

[Vue警告]:创建的挂钩中出现错误:“ TypeError:无法读取未定义的属性'userId'”

  

TypeError:无法读取未定义的属性'userId'

我的app.js如下所示。

require('./bootstrap');
window.Vue = require('vue');
window._ = require('lodash');
window.$ = window.jQuery = require('jquery');

Vue.component('estate', require('./components/EstateNotification.vue'));

const app = new Vue({
    el: '#app',
    data: {
        estates: '',
    },
    created(){
      if (window.Laravel.userId){
          axios.post('/notification/estate/notification').then(response => {
              this.estates = response.data;
              console.log(response.data)
          });

          Echo.private('App.User.'+ window.Laravel.userId).notification((response) => {
              data = {"data":response};
              this.estates.push(data);
              console.log(response);
          });
      }
    }
});

在我的路线上:

Route::post('/notification/estate/notification', 'EstateController@notification');

控制器:

public function notification()
    {
        return auth()->user()->unreadNotifications;
    }

但是我不知道为什么,为什么userId未定义?我在哪里做错了?真的非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

在app.blade中尝试一下:

<div id ="app">
    <estate v-bind:estates="estates"></estate>
</div>




const app = new Vue({
       el: '#app'  //this ID
   });