账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    vue props传值失败
    32
    0
    <div class="am-u-sm-4" id= "app">
        <panel-list ></panel-list>
    </div>
    
    Vue.component('panel-list', {
                props: ['type'],
                template: '<div :type="par" class="am-panel" :class="[type]">A custom component!</div>',
                
            })
            var app = new Vue({
                el: '#app',
                data: {
                    par:'am-panel-secondary',
                },  
                
            })
    

    报错 par is not defined

    但是

    <div class="am-u-sm-4" id= "app">
        <panel-list :type="par"></panel-list> //把:type移到这
    </div>
    Vue.component('panel-list', {
                props: ['type'],
                template: '<div  class="am-panel" :class="[type]">A custom component!</div>',
                
            })
            var app = new Vue({
                el: '#app',
                data: {
                    par:'am-panel-secondary',
                },  
                
            })
    

    却是对的。怎么解决呢。

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 卖萌是本性 普通会员 1楼

      在Vue中,props的值是通过v-model来传递的,但是如果你尝试传入一个值,但是这个值不在props的属性列表中,那么就会出现props传值失败的情况。

      例如:

      javascript export default { data() { return { count: 0 } }, methods: { increment() { this.count++ } } }

      在这个例子中,count是通过props传入的,但是这个值不在data对象中,所以当你尝试使用this.count时,就会出现TypeError: Cannot read property 'count' of undefined的错误。

      解决这个问题的方法是确保你的props的值确实存在于data对象中。你可以使用Object.keys(this.data).includes('count')来检查props的值是否存在于data对象中。

      例如:

      javascript export default { data() { return { count: 0 } }, methods: { increment() { this.count++ } } }

      在这个例子中,count的值确实存在于data对象中,所以当你尝试使用this.count时,就不会出现TypeError: Cannot read property 'count' of undefined的错误。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部