最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

解决vue组件props传值对象获取不到的问题

来源:懂视网 责编:小采 时间:2020-11-27 21:55:26
文档

解决vue组件props传值对象获取不到的问题

解决vue组件props传值对象获取不到的问题:先说问题,父组件利用props向子组件传值,浏览器 console 有这个值,但是获取不到内部的属性,困了我3个小时,真的** personal console 以下为原代码 1、home.vue(父组件)--personal是被传的参数 <!--子组件--> <form
推荐度:
导读解决vue组件props传值对象获取不到的问题:先说问题,父组件利用props向子组件传值,浏览器 console 有这个值,但是获取不到内部的属性,困了我3个小时,真的** personal console 以下为原代码 1、home.vue(父组件)--personal是被传的参数 <!--子组件--> <form

以下为原代码

1、home.vue(父组件)--personal是被传的参数

<!--子组件-->
<form-picker class="form-picker"
 :personal="personal"
>
</form-picker>
export default {
 data(){
 return{
 personal:{
 state:'',////判断是修改状态,还是新增状态 add/edit
 data:[]
 }
 }
 },
 mounted(){
 this.$api.personal.searchPersonalInfo(this.userInfo.userId).then((res)=>{
 this.personal.data = res.data.data //这里给personal对象赋值接口传来的数据
 })
 },
}

2、formPicker (子组件) --接收personal

export default {
 props:['active','personal'],
 mounted(){
 console.log(149,this.personal)
 console.log(150,this.personal.state)
 }
}

运行结果

明明149行有 state 值,150行输出却没有了,是不是超级奇怪

后面经过大佬的讲解,其实浏览器console.log也是应该没有的

所以,其实我们子组件一开始根本就没有取到这个personal这个对象。

3、解决方法--使用watch

父组件

export default {
 data(){
 return{
 personal:{
 state:'',////判断是修改状态,还是新增状态 add/edit
 data:[]
 }
 }
 },
 mounted(){
 this.$api.personal.searchPersonalInfo(this.userInfo.userId).then((res)=>{
 //this.personal.data = res.data.data //这里给personal对象赋值接口传来的数据
 //使用以下方法重新赋值,上面方法watch监听不到,具体什么原因,我也不清楚,知道的告知我!谢谢
 this.personal = {
 data: res.data.data,
 state: 'edit'
 }
 })
 },
}

接下来子组件就能 watch 到 personal 了 子组件

watch:{
 personal(newValue,oldValue){
 console.log(181,newValue) 
 },
/** 
输出 { data: res.data.data, state: 'edit' } **/ }

总结

以上所述是小编给大家介绍的解决vue组件props传值对象获取不到的问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

解决vue组件props传值对象获取不到的问题

解决vue组件props传值对象获取不到的问题:先说问题,父组件利用props向子组件传值,浏览器 console 有这个值,但是获取不到内部的属性,困了我3个小时,真的** personal console 以下为原代码 1、home.vue(父组件)--personal是被传的参数 <!--子组件--> <form
推荐度:
标签: VUE 组件 获取的
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top