2017-05-25 69 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