解决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中的稀疏数组与密集数组[译]
Sep 17 Javascript
JS localStorage实现本地缓存的方法
Jun 22 Javascript
onkeyup,onkeydown和onkeypress的区别介绍
Oct 21 Javascript
Javascript 计算字符串在localStorage中所占字节数
Oct 21 Javascript
jquery实现倒计时功能
Dec 28 Javascript
JS实现页面载入时随机显示图片效果
Sep 07 Javascript
文件上传的几个示例分享【推荐】
Dec 16 Javascript
Bootstrap Table使用整理(四)之工具栏
Jun 09 Javascript
JS如何实现在页面上快速定位(锚点跳转问题)
Aug 14 Javascript
新手如何快速理解js异步编程
Jun 24 Javascript
VUE项目axios请求头更改Content-Type操作
Jul 24 Javascript
解决vue中axios设置超时(超过5分钟)没反应的问题
Sep 04 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
smarty的保留变量问题
2008/10/23 PHP
php mysql Errcode: 28 终极解决方法
2009/07/01 PHP
php高级编程-函数-郑阿奇
2011/07/04 PHP
getimagesize获取图片尺寸实例
2014/11/15 PHP
php使用gearman进行任务分发操作实例详解
2020/02/26 PHP
jQuery库与其他JS库冲突的解决办法
2010/02/07 Javascript
JavaScript Event学习补遗 addEventSimple
2010/02/11 Javascript
jquery checkbox,radio是否选中的判断代码
2010/03/20 Javascript
避免 showModalDialog 弹出新窗体的原因分析
2010/05/31 Javascript
jQuery对表单的操作代码集合
2011/04/06 Javascript
javascript中的注释使用与注意事项小结
2011/09/20 Javascript
js模仿hover的具体实现代码
2013/12/30 Javascript
node.js中实现同步操作的3种实现方法
2014/12/05 Javascript
理解Javascript的call、apply
2015/12/16 Javascript
AngularJS使用ng-inlude指令加载页面失败的原因与解决方法
2017/01/19 Javascript
微信小程序 Buffer缓冲区的详解
2017/07/06 Javascript
基于javascript中的typeof和类型判断(详解)
2017/10/27 Javascript
vue组件中的数据传递方法
2018/05/14 Javascript
详解create-react-app 自定义 eslint 配置
2018/06/07 Javascript
vue打包使用Nginx代理解决跨域问题
2018/08/27 Javascript
Vue.js中provide/inject实现响应式数据更新的方法示例
2019/10/16 Javascript
javascript实现fetch请求返回的统一拦截
2019/12/22 Javascript
详解Vue 单文件组件的三种写法
2020/02/19 Javascript
node.js如何根据URL返回指定的图片详解
2020/10/21 Javascript
[04:26]2014DOTA2西雅图国际邀请赛 总决赛TOPPLAY
2014/07/22 DOTA
利用Python演示数型数据结构的教程
2015/04/03 Python
Python实现读取邮箱中的邮件功能示例【含文本及附件】
2017/08/05 Python
Python实现随机选择元素功能
2017/09/14 Python
Python WXPY实现微信监控报警功能的代码
2017/10/20 Python
python读取csv文件并把文件放入一个list中的实例讲解
2018/04/27 Python
利用Python中的Xpath实现一个在线汇率转换器
2020/09/09 Python
python实现测试工具(一)——命令行发送get请求
2020/10/19 Python
Python3.8.2安装包及安装教程图文详解(附安装包)
2020/11/28 Python
2019年分享net面试的经历和题目
2016/08/07 面试题
机械工程及自动化专业求职信
2014/09/03 职场文书
创业计划书之水果店
2019/07/18 职场文书