开发者问题收集

VueJS router.push() 问题

2018-03-26
3146

我直接说重点。我在登录页面上进行身份验证,单击登录页面后,它会将我重定向到产品组件,然后在该产品组件上,我发出 HTTP 请求 以获取所有产品。但是,登录并重定向到产品页面后,产品组件似乎无法在 created() 生命周期挂钩上运行我的 HTTP 请求 。这是正常行为吗?

这是我的代码:

登录:

export default{
        data(){
            return {
                email: '',
                password: ''
            }
        },
        methods:{
            login(){
                var data = {
                    client_id: 2,
                    client_secret: 'TOKEN_HERE,
                    grant_type: 'password',
                    username: this.email,
                    password: this.password
                }

                this.$http.post("oauth/token", data).then(response => {
                    this.$auth.setToken(response.body.access_token, response.body.expires_in + Date.now())
                    this.$router.push('/products')
                })

            }
        }

PRODUCTS.VUE

import Products from './product/Products.vue'
    export default {
        components: {
            'my-products' : Products
        },
        created(){
          this.$http.get('api/products')
            .then(response => {
                alert("products from feed");
                this.products = response.body
            })
        }
    }

重定向到 products.vue 创建的生命周期挂钩后,它无法运行我的 http 请求。

提前致谢。

1个回答
Max Liashuk
2018-03-26