解决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 相关文章推荐
JavaScript触发器详解
Mar 10 Javascript
JavaScript 用Node.js写Shell脚本[译]
Sep 20 Javascript
Javascript表单验证要注意的事项
Sep 29 Javascript
jQuery中has()方法用法实例
Jan 06 Javascript
jquery不常用方法汇总
Jul 26 Javascript
js闭包引起的事件注册问题介绍
Mar 29 Javascript
深入理解JavaScript 函数
Jun 06 Javascript
解决微信浏览器Javascript无法使用window.location.reload()刷新页面
Jun 21 Javascript
简单实现jQuery上传图片显示预览功能
Jun 29 jQuery
JavaScript+CSS相册特效实例代码
Sep 07 Javascript
浅谈从React渲染流程分析Diff算法
Sep 08 Javascript
微信小程序表单验证WxValidate的使用
Nov 27 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
4月1日重磅发布!《星际争霸II》6.0.0版本更新
2020/04/09 星际争霸
PHP url 加密解密函数代码
2011/08/26 PHP
laravel 5 实现模板主题功能(续)
2015/03/02 PHP
PHP基于timestamp和nonce实现的防止重放攻击方案分析
2019/07/26 PHP
php输出形式实例整理
2020/05/05 PHP
用Javascript来生成ftp脚本的小例子
2013/07/03 Javascript
jQuery+ajax实现鼠标单击修改内容的方法
2014/06/27 Javascript
jQuery内置的AJAX功能和JSON的使用实例
2014/07/27 Javascript
JavaScript的React Web库的理念剖析及基础上手指南
2016/05/10 Javascript
基于BootStrap的Metronic框架实现页面链接收藏夹功能按钮移动收藏记录(使用Sortable进行拖动排序)
2016/08/29 Javascript
微信小程序中单位rpx和rem的使用
2016/12/06 Javascript
jQuery实现的滑块滑动导航效果示例
2018/06/04 jQuery
JavaScript实现抖音罗盘时钟
2019/10/11 Javascript
Vue 实现输入框新增搜索历史记录功能
2019/10/15 Javascript
深入浅析golang zap 日志库使用(含文件切割、分级别存储和全局使用等)
2020/02/19 Javascript
python实现简单中文词频统计示例
2017/11/08 Python
Django在win10下的安装并创建工程
2017/11/20 Python
Python基于csv模块实现读取与写入csv数据的方法
2018/01/18 Python
python numpy格式化打印的实例
2018/05/14 Python
win10 64bit下python NLTK安装教程
2018/09/19 Python
Python 单元测试(unittest)的使用小结
2018/11/14 Python
Python 图像处理: 生成二维高斯分布蒙版的实例
2019/07/04 Python
Pycharm使用远程linux服务器conda/python环境在本地运行的方法(图解))
2019/12/09 Python
Selenium关闭INFO:CONSOLE提示的解决
2020/12/07 Python
CSS3实现闪烁动画效果的方法
2015/02/09 HTML / CSS
canvas画布实现手写签名效果的示例代码
2019/04/23 HTML / CSS
Skyscanner台湾:全球知名的旅行比价引擎
2018/07/01 全球购物
买卖正宗运动鞋:GOAT
2019/12/06 全球购物
农救科工作职责
2013/11/27 职场文书
自我评价范文点评
2013/12/04 职场文书
联谊活动策划书
2014/01/26 职场文书
2014年度个人工作总结范文
2015/03/09 职场文书
简历中自我评价范文
2015/03/11 职场文书
《童年的发现》教学反思
2016/02/18 职场文书
创业计划书之旅游网站
2019/09/06 职场文书
用python实现监控视频人数统计
2021/05/21 Python