2017-05-25 70 views
0

我試着按照下面的教程laravel 5.3和2.0 VUE:顯示身份驗證的用戶

https://www.youtube.com/watch?v=CeXDx4hdT1s

Products.vue:

<my-product :key="product.id" 
      v-for="product in products" 
      :authenticatedUser="authenticatedUser" 
      :product="product"> 

.. 。

computed: { 
    authenticatedUser() { 
    this.$auth.getAuthenticatedUser() 
    } 
}, 

Product.vue:

export default{ 
    props: ['product', 'authenticatedUser'] 
} 

Auth.js

setAuthenticatedUser(data){ 
    authenticatedUser = data; 
}, 

getAuthenticatedUser(){ 
    return authenticatedUser; 
} 

Navbar.vue:

export default { 
    data() { 
     return { 
      isAuth: null 
     } 
    }, 

    created() { 
     this.isAuth = this.$auth.isAuthenticated(); 

     this.setAuthenticatedUser(); 
    }, 

    methods: { 
     setAuthenticatedUser() { 
      this.$http.get('api/user') 
        .then(response => { 
         this.$auth.setAuthenticatedUser(response.body); 
         console.log(this.$auth.getAuthenticatedUser()); 
        }) 
     } 
    } 

我試圖通過其內堪稱Products.vue身份驗證的用戶Product.vue

爲此,在每次登錄時,setAuthenticated方法在t他將調用Navbar.vue,其中通過認證的用戶應該在相應的方法中進行設置。

但是當我在瀏覽器的調試器中檢查屬性時,它被寫入Props authenticatedUser:undefinded。實際上,經過身份驗證的用戶不會顯示。

任何想法它缺少什麼?

+0

'的console.log(此$ auth.getAuthenticatedUser());'它返回何意? – wostex

+0

是的,它返回用戶 – Steve

回答

2

computed您需要return您希望屬性採取的值。

它應該是:

computed: { 
    authenticatedUser() { 
    return this.$auth.getAuthenticatedUser() 
    } 
}, 
+0

是的,這爲我工作。謝謝 – Steve