先说问题,父组件利用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传值对象获取不到的问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
本文向大家介绍详解vue父子组件间传值(props),包括了详解vue父子组件间传值(props)的使用技巧和注意事项,需要的朋友参考一下 先定义一个子组件,在组件中注册props 在父组件中,引入子组件,并传入子组件内需要的值 这种方式只能由父向子传递,子组件不能更新父组件内的data 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
本文向大家介绍解决vue attr取不到属性值的问题,包括了解决vue attr取不到属性值的问题的使用技巧和注意事项,需要的朋友参考一下 js: html: 使用 ruleList.$nextTick(function () {}) 拿到更新后的dom 以上这篇解决vue attr取不到属性值的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。
本文向大家介绍vue中子组件的methods中获取到props中的值方法,包括了vue中子组件的methods中获取到props中的值方法的使用技巧和注意事项,需要的朋友参考一下 父子组件通信 这个官网很清楚,也很简单,父组件中使用v-bind绑定传送,子组件使用props接收即可 例如: 父组件中 子组件中 这种情况下,子组件的methods中想要取到props中的值,直接使用this.char
本文向大家介绍解决Vue不能检测数组或对象变动的问题,包括了解决Vue不能检测数组或对象变动的问题的使用技巧和注意事项,需要的朋友参考一下 来看一个实例: 想实现的效果是点击 li 看 vm.nymbers[index] 是否存在,不存在设置为1,存在的话加1。 点击之后数字并没有在view层更新,而通过console打印发现数据更新了,只是view层没有及时的检测到。 再看一个改动之后的: 可以
本文向大家介绍详解vue2父组件传递props异步数据到子组件的问题,包括了详解vue2父组件传递props异步数据到子组件的问题的使用技巧和注意事项,需要的朋友参考一下 测试环境:vue v2.3.3, vue v2.3.1 案例一 父组件parent.vue 子组件child.vue 上面按照这里的解析,子组件的html中的{{childData}}的值会随着父组件的值而改变,但是create
本文向大家介绍Vue 使用Props属性实现父子组件的动态传值详解,包括了Vue 使用Props属性实现父子组件的动态传值详解的使用技巧和注意事项,需要的朋友参考一下 如下所示: 这里需要注意的是在html中的 my-message 就是scrpit中的 myMessage。因为: HTML 特性是不区分大小写的。所以,当使用的不是字符串模板时,camelCase (驼峰式命名) 的 prop 需