Vue2.0,如何在组件内部获取 prop 呢?始终 undefined

2016-11-22 16:32:24 +08:00
 akaylh

组件 A 有一个 prop 属性 id ;

A 组件:

export default{
  props:{
    id:{
      type:String
    }
  },
  mounted:function(){
    console.log(this.id) //始终 undefined
  }
}

组件 B 调用组件 A ,并给 id 传值<a :id="id"></a>

B 组件:

export default{
      data() {
        return {
          id:23
       }
   },
  components:{....}
}

在组件 A 的 mounted 里获取 id ,始终是空的。

3862 次点击
所在节点    Vue.js
7 条回复
1mhz
2016-11-22 16:56:14 +08:00
A 组件, id:String 试试
1mhz
2016-11-22 16:57:42 +08:00
也有可能是 mounted 里边要 this.$nextTick 再打印
1mhz
2016-11-22 16:58:55 +08:00
或者你确定 b 组件里 components 包含了 a 组件?
micate
2016-11-22 17:15:50 +08:00
看示例:
https://jsfiddle.net/micate/9s53p7ee/

```
<a :id="id"></a>
```

引号中的 `id` 如果想要直接传递字符串,应该使用单引号引起来;
如果是传递引用,要保证这个引用在父组件中存在,比如是 `data` 中的 key ,或者是计算属性之类的。
akaylh
2016-11-22 19:07:30 +08:00
@1mhz b 组件里是有引用 a 组件的, components 我省略写了
akaylh
2016-11-22 19:08:39 +08:00
我目前暂时是通过 watch 来实现了。
akaylh
2016-11-22 19:12:33 +08:00
@micate 看了您的示例,确实是可以。我的代码里可能是因为 b 组件里 id 也是通过 mounted 来讲求 ajax 赋值的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/322411

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX