解决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 相关文章推荐
JS/FLASH实现复制代码到剪贴板(兼容所有浏览器)
May 27 Javascript
jQuery之按钮组件的深入解析
Jun 19 Javascript
JS预览图像将本地图片显示到浏览器上
Aug 25 Javascript
jquery实现弹出层遮罩效果的简单实例
Mar 03 Javascript
require.js的用法详解
Oct 20 Javascript
js多个物体运动功能实例分析
Dec 20 Javascript
javascript 注释代码的几种方法总结
Jan 04 Javascript
解决vue 更改计算属性后select选中值不更改的问题
Mar 02 Javascript
简单谈谈javascript高级特性
Sep 04 Javascript
mpvue微信小程序的接口请求fly全局拦截代码实例
Nov 13 Javascript
react组件基本用法示例小结
Apr 27 Javascript
JavaScript位置参数实现原理及过程解析
Sep 14 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
《Re:从零开始的异世界生活》剧情体验,手游新作定名
2020/04/09 日漫
php面向对象全攻略 (十七) 自动加载类
2009/09/30 PHP
php中通过curl smtp发送邮件
2012/06/05 PHP
简单的两种Extjs formpanel加载数据的方式
2013/11/09 Javascript
JS正则验证邮箱的格式详细介绍
2013/11/19 Javascript
js 右侧浮动层效果实现代码(跟随滚动)
2015/11/22 Javascript
正则表达式优化JSON字符串的技巧
2015/12/24 Javascript
JavaScript基础知识点归纳(推荐)
2016/07/09 Javascript
AngularJS 过滤器的简单实例
2016/07/27 Javascript
js canvas仿支付宝芝麻信用分仪表盘
2016/11/16 Javascript
关于JavaScript的单双引号嵌套问题
2017/08/20 Javascript
Vue 仿QQ左滑删除组件功能
2018/03/12 Javascript
JS Object.preventExtensions(),Object.seal()与Object.freeze()用法实例分析
2018/08/25 Javascript
详解node和ES6的模块导出与导入
2020/02/19 Javascript
用云开发Cloudbase实现小程序多图片内容安全监测的代码详解
2020/06/07 Javascript
JavaScript中遍历的十种方法总结
2020/12/15 Javascript
python实现从web抓取文档的方法
2014/09/26 Python
Python NumPy库安装使用笔记
2015/05/18 Python
利用信号如何监控Django模型对象字段值的变化详解
2017/11/27 Python
搞清楚 Python traceback的具体使用方法
2019/05/13 Python
python函数参数(必须参数、可变参数、关键字参数)
2019/08/16 Python
python求质数列表的例子
2019/11/24 Python
Python使用指定字符长度切分数据示例
2019/12/05 Python
Python中的None与 NULL(即空字符)的区别详解
2020/09/24 Python
iRobot官网:改变生活的家用机器人品牌
2016/09/20 全球购物
台湾母婴用品限时团购:妈咪爱
2018/08/03 全球购物
JPA面试常见问题
2016/11/14 面试题
庆元旦迎新年广播稿
2014/02/18 职场文书
法律进学校实施方案
2014/03/15 职场文书
法人委托书范本
2014/04/04 职场文书
企业文明单位申报材料
2014/05/16 职场文书
学生抄袭作业的检讨书
2014/10/02 职场文书
关于运动会广播稿200字
2014/10/08 职场文书
2014年仓库管理工作总结
2014/12/17 职场文书
农村老人去世追悼词
2015/06/23 职场文书
pandas中pd.groupby()的用法详解
2022/06/16 Python