将变量传递给 Vue.js 中的子组件

Posted

技术标签:

【中文标题】将变量传递给 Vue.js 中的子组件【英文标题】:Passing a variable to child component in Vue.js 【发布时间】:2019-05-30 01:00:00 【问题描述】:

你好再次堆栈溢出。我想将一个变量传递给 Vue 中的子组件。

我已经做了一些搜索并尝试了以下,基于这里***

我也试过用created:方法代替mounted:

有什么想法吗?

这是我的父组件

订阅.vue

<template>
    <div>
        <h1>Subscribe with Stripe</h1>
        <StripeSubscriptions :subscription="subscriptionType"></StripeSubscriptions>
    </div>
</template>

<script>
    import StripeSubscriptions from '../../includes/StripeSubscriptions.vue';

    export default 
        data()
            return 
                subscriptionType: "Monthly"
            ;
        ,
        components: 
            StripeSubscriptions
        
    
</script>

子组件

StripeSubscribe.vue

<template>
    <div>
        <div ref="card"></div>
        <button v-on:click="purchase">Purchase</button>
    </div>

</template>

<script>
    export default 
        props: ['subscription'],
        mounted: function () 
            this.logThis();
        ,
        methods: 
            logThis: function ()
                console.log(this.subscription);
            ,
        
    ;
</script>

以上控制台输出为:here: undefined

【问题讨论】:

【参考方案1】:

您似乎对此有错误的引用。在 javascript 上下文中,this 指的是直接上下文,但 Vue 道具与类/组件的上下文相关联。

为防止这种情况,请将this 的引用存储到另一个变量,或使用箭头函数

methods: 
            logThis: () => 
                console.log(this.subscription);
            ,
        

【讨论】:

以上是关于将变量传递给 Vue.js 中的子组件的主要内容,如果未能解决你的问题,请参考以下文章