vue props传递数组子组件获取不到

在子组件定义了srcList

 props:{
            width:Number,
            height:Number,
            name:String,
            size:String,
            srcList:Array,
            multiple:Boolean
        },

父组件传进去一个数组,

<FormItem label="上传商品图" class="ivu-form-item-required">
  <uploadImg :width="200" :height="200" name="productImage" size="750px*750px" ref="productImage" :srcList="this.productImage"></uploadImg>
</FormItem>

这个数组在父组件是可以打印出来的,传入子组件中,子组件打印不出来,但是其他props都可以打印出来,请问是什么原因呢?

clipboard.png

clipboard.png

我好像找到了原因,但是还不知道该怎么解决,父组件中定义的这个数组默认为空,值是在created钩子函数中axios获取到的,所以传入子组件的是data里定义的空数组。

this.productImage=res.data.cover;

子组件用watch监听里一下,输出的当前的值是 数组,之前的值是空,但是组件中用到的该变量依然打印为空。

clipboard.png

clipboard.png

阅读 25.8k
5 个回答

srcList这个写错了吧,在通过props传值的时候,键名不能用驼峰命名方式,也不能用src-list模式,直接这样命名吧srclist

兄弟你要传入的到底是啥?你绑定的:srcList 你在父组件里打印的也是this.srcList 但是你传入的为什么是this.productImage 不应该是srcList吗

你注意下先后顺序。。。
可能是你先调用了用到srcList的方法。。。
你可以watch srcList
变化的时候在这里调用用到srcList的方法


如果你只是为了能够console出来
那就在子组件里watch srcList
再 console.log(this.srcList)


srcList不要用驼峰,这样写

:src-list="this.xxx"

可以尝试一下computed计算属性,或许可以解决

你好,请问怎么解决的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题