解决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 函数集合
Jun 11 Javascript
28个JS验证函数收集
Mar 02 Javascript
jquery插件制作 表单验证实现代码
Aug 17 Javascript
JavaScript设置IFrame高度自适应(兼容各主流浏览器)
Jun 05 Javascript
JS中数组Array的用法示例介绍
Feb 20 Javascript
LABjs、RequireJS、SeaJS的区别
Mar 04 Javascript
浅析Bootstrip的select控件绑定数据的问题
May 10 Javascript
jQuery添加和删除输入文本框标签代码
May 20 Javascript
jQuery实现字符串全部替换的方法
Dec 12 Javascript
解决html-jquery/js引用外部图片时遇到看不了或出现403的问题
Sep 22 jQuery
angularjs实现柱状图动态加载的示例
Dec 11 Javascript
解决Layui 表单提交数据为空的问题
Aug 15 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
Zend studio for eclipse中使php可以调用mysql相关函数的设置方法
2008/10/13 PHP
php 启动时报错的简单解决方法
2014/01/27 PHP
PHP获取当前页面URL函数实例
2014/10/22 PHP
phpStudy访问速度慢和启动失败的解决办法
2015/11/19 PHP
Yii2增加验证码步骤详解
2016/04/25 PHP
如何利用预加载优化Laravel Model查询详解
2017/08/11 PHP
Yii 使用intervention/image拓展实现图像处理功能
2019/06/22 PHP
JavaScript 学习笔记二 字符串拼接
2010/03/28 Javascript
一些相见恨晚的 JavaScript 技巧
2010/04/25 Javascript
jQuery dialog 异步调用ashx,webservice数据的代码
2010/08/03 Javascript
8款非常棒的响应式jQuery 幻灯片插件推荐
2012/02/02 Javascript
前台js改变Session的值(用ajax实现)
2012/12/28 Javascript
Knockout text绑定DOM的使用方法
2013/11/15 Javascript
实现前后端数据交互方法汇总
2015/04/07 Javascript
JavaScript 匿名函数和闭包介绍
2015/04/13 Javascript
JavaScript简单判断复选框是否选中及取出值的方法
2015/08/13 Javascript
JS简单测试循环运行时间的方法
2016/09/04 Javascript
浅谈nodejs中的类定义和继承的套路
2017/07/26 NodeJs
微信页面弹出键盘后iframe内容变空白的解决方案
2017/09/20 Javascript
vue iview组件表格 render函数的使用方法详解
2018/03/15 Javascript
JavaScript常用数组操作方法,包含ES6方法
2020/05/10 Javascript
vue 实现Web端的定位功能 获取经纬度
2019/08/08 Javascript
[03:40]2014DOTA2国际邀请赛 B神专访:躲箭真的很难
2014/07/13 DOTA
[02:37]2015国际邀请赛选手档案—LGD.Xiao8
2015/07/28 DOTA
Django框架实现的简单分页功能示例
2018/12/04 Python
python三引号输出方法
2019/02/27 Python
Python3使用TCP编写一个简易的文件下载器功能
2019/05/08 Python
python判断所输入的任意一个正整数是否为素数的两种方法
2019/06/27 Python
python 控制台单行刷新,多行刷新实例
2020/02/19 Python
武汉世纪畅想数字传播有限公司 .NET笔试题
2015/06/13 面试题
创业计划实施的7大步骤
2014/02/05 职场文书
应届毕业生自荐书
2014/06/18 职场文书
房产公证书样本
2015/01/23 职场文书
预备党员自我评价范文
2015/03/04 职场文书
加薪申请报告范本
2015/05/15 职场文书
宿舍管理制度范本
2015/08/07 职场文书