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


Posted in Javascript onJune 06, 2019

先说问题,父组件利用props向子组件传值,浏览器 console 有这个值,但是获取不到内部的属性,困了我3个小时,真的**

personal
console

以下为原代码

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传值对象获取不到的问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
IE和Firefox下javascript的兼容写法小结
Dec 10 Javascript
让复选框只能选择一项的方法
Oct 08 Javascript
JavaScript中的连字符详解
Nov 28 Javascript
如何实现修改密码时密码框显示保存到cookie的密码
Dec 10 Javascript
Jqgrid表格随窗口大小改变而改变的简单实例
Dec 28 Javascript
jQuery中extend函数的实现原理详解
Feb 03 Javascript
javascript中mouseover、mouseout使用详解
Jul 19 Javascript
JavaScript setTimeout使用闭包功能实现定时打印数值
Dec 18 Javascript
javascript HTML5 Canvas实现圆盘抽奖功能
Apr 11 Javascript
Javascript oop设计模式 面向对象编程简单实例介绍
Dec 13 Javascript
JS实现字符串去重及数组去重的方法示例
Apr 21 Javascript
OpenLayers3加载常用控件使用方法详解
Sep 25 Javascript
webpack4之如何编写loader的方法步骤
Jun 06 #Javascript
vue 插件的方法代码详解
Jun 06 #Javascript
jquery+ajax实现上传图片并显示上传进度功能【附php后台接收】
Jun 06 #jQuery
node.js的http.createServer过程深入解析
Jun 06 #Javascript
vue中keep-alive组件的入门使用教程
Jun 06 #Javascript
vue2配置scss的方法步骤
Jun 06 #Javascript
JavaScript中将值转换为字符串的五种方法总结
Jun 06 #Javascript
You might like
Php+SqlServer实现分页显示
2006/10/09 PHP
php模拟asp中的XmlHttpRequest实现http请求的代码
2011/03/24 PHP
php通过字符串调用函数示例
2014/03/02 PHP
php微信开发之上传临时素材
2016/06/24 PHP
jquery 防止表单重复提交代码
2010/01/21 Javascript
js 实现复制到粘贴板的功能代码
2010/05/13 Javascript
Javascript实现计算个人所得税
2015/05/10 Javascript
浅谈jQuery中ajaxPrefilter的应用
2016/08/01 Javascript
JS中静态页面实现微信分享功能
2017/02/06 Javascript
基于jQuery实现一个marquee无缝滚动的插件
2017/03/09 Javascript
详解Angular2中Input和Output用法及示例
2017/05/21 Javascript
解决node-sass偶尔安装失败的方法小结
2018/12/05 Javascript
玩转Koa之koa-router原理解析
2018/12/29 Javascript
简单介绍Python中的floor()方法
2015/05/15 Python
详解Python中映射类型(字典)操作符的概念和使用
2015/08/19 Python
Python自定义类的数组排序实现代码
2016/08/28 Python
python爬取m3u8连接的视频
2018/02/28 Python
pandas 读取各种格式文件的方法
2018/06/22 Python
python之super的使用小结
2018/08/13 Python
Python 输入一个数字判断成绩分数等级的方法
2018/11/15 Python
numpy数组之存取文件的实现示例
2019/05/24 Python
Python抓包程序mitmproxy安装和使用过程图解
2020/03/02 Python
python实现批处理文件
2020/07/28 Python
用纯css3和html制作泡沫对话框实现代码
2013/03/21 HTML / CSS
Weekendesk意大利:探索多种引人入胜的周末主题
2016/10/14 全球购物
班长岗位职责
2013/11/10 职场文书
公务员总结性个人自我评价
2013/12/05 职场文书
高中微机老师自我鉴定
2014/02/16 职场文书
餐饮采购员岗位职责
2014/03/15 职场文书
银行党的群众路线教育实践活动对照检查材料
2014/09/25 职场文书
小区门卫的岗位职责
2014/09/26 职场文书
个人查摆问题自查报告
2014/10/16 职场文书
道德模范事迹材料
2014/12/20 职场文书
国富论读书笔记
2015/06/26 职场文书
民间借贷纠纷起诉书
2015/08/03 职场文书
python字符串常规操作大全
2021/05/02 Python