问题背景

有一个父组件A:

<template><div class="app-container"><B ref="child"></B></div>
</template>
<script>
export default { created() {api(id).then( res => {this.$refs.child.data=resthis.$refs.child.data['period']=[res.startTime,res.endTime]delete this.$refs.child.data['startTime']delete this.$refs.child.data['endTime']})},methods: {}
}
</script>

子组件为:

<template><div class="app-container"><el-form label-position="right" label-width="80px" :model="formData"><el-card class="box-card" style="width:100%"><el-row><el-col><el-form-item label="时间"><el-date-pickerstyle="width:100%;"value-format="yyyy-MM-dd"v-model="formData.period"type="daterange"range-separator="至"start-placeholder="开始日期"end-placeholder="结束日期"></el-date-picker></el-form-item></el-col></el-row></el-card></el-form></div></template><script>export default {data() {return {data: {name: '',period: ['','']}}},methods: {}}</script>

问题描述

更改时间选择器后时间选择器不更新,但是实际的数据却更新了

问题原因

在父组件给子组件赋值时,首先将res赋值给child.data,但是res中并没有period属性,导致child.data中的period丢失,与组件的绑定断开,后续过程中再给child.data增加peroid属性后也无法建立绑定

受 ES5 的限制,Vue.js 不能检测到对象属性的添加或删除。因为 Vue.js 在初始化实例时将属性转为 getter/setter,所以属性必须在 data 对象上才能让 Vue.js 转换它,才能让它是响应的。 作者:再喝奶茶我就是狗 https://www.bilibili.com/read/cv13162287?from=search 出处:bilibili

解决方法

不要让子组件的已绑定属性丢失即可

res['period']=[res.startTime,res.endTime]
delete res['startTime']
delete res['endTime']
this.$refs.child.data=res

vue绑定失效的问题(操纵组件不更新)相关推荐

  1. 【Vue学习第三天】组件的使用

    整理的内容 Vue中组件的一些用法和概念 创建组件 父子组件传值 组件的切换 使用slot分发内容 什么是组件 组件的出现,就是为了拆分Vue实例的代码量,能够让我们以不同的组件,来划分不同的功能模块 ...

  2. Vue — 第四天(components组件)

    问题导入 下面的代码是一个折叠面板的效果. <!DOCTYPE html> <html lang="en"> <head><meta ch ...

  3. Vue表单类的父子组件数据传递示例_vue.js_脚本之家

    使用Vue.js进行项目开发,那必然会使用基于组件的开发方式,这种方式的确给开发和维护带来的一定的便利性,但如果涉及到组件之间的数据与状态传递交互,就是一件麻烦事了,特别是面对有一大堆表单的页面. 在 ...

  4. vue变量传值_VUE 学习——父组件传值给子组件

    在我们编写前端代码时,经常遇到的一种场景,子组件需要使用父组件的值,这种情况下,我们可以使用props帮助我们进行父子组件间的通信.这里我们先模拟一个场景,展示如何使用. 场景:在父组件修改值,传递给 ...

  5. (vue基础试炼_05)简单组件之间的传值

    接上一篇:(vue基础试炼_04)使用组件改造TodoListhttps://gblfy.blog.csdn.net/article/details/103844256 文章目录 一.上篇回顾 ① 代 ...

  6. (vue基础试炼_04)使用组件改造TodoList

    接上一篇:(vue基础试炼_03)使用vue.js实现TodoListhttps://gblfy.blog.csdn.net/article/details/103842233 指令 说明 v-bin ...

  7. vue 一个组件内多个弹窗_使用vue实现各类弹出框组件

    简单介绍一下vue中常用dialog组件的封装: 实现动态传入内容,实现取消,确认等回调函数. 首先写一个基本的弹窗样式,如上图所示. 在需要用到弹窗的地方中引入组件: import dialogBa ...

  8. Vue.js父与子组件之间传参 父向子组件传参   例子:App.vue为父,引入componetA组件之后,则可以在template中使用标签(注意驼峰写法要改成componet-a写法,因为ht

    Vue.js父与子组件之间传参 父向子组件传参 例子:App.vue为父,引入componetA组件之后,则可以在template中使用标签(注意驼峰写法要改成componet-a写法,因为html对 ...

  9. vue父组给子子组件传html,vue组件之间互相传值:父传子,子传父

    今看到一篇很不错的vue组件传值文章,便于理解,遂作笔记-vue 通常页面的视图App.vue应为这样 一.父组件向子组件传值浏览器 1.建立子组件,在src/components/文件夹下新建一个C ...

最新文章

  1. eeglab中文教程系列(6)-数据叠加平均{1}(Data averaging)
  2. 基于 NodeGit 的周报生成工具
  3. hibernate缓存机制详细介绍
  4. SpringMVC 课纲
  5. Java 洛谷 P1008 三连击
  6. java期末考试试卷及答案文库_备战期末考!初中全科下册期末试卷(含答案)合集,建议收藏!...
  7. 好久没有写了,今天就谈谈微信吧!
  8. 机器学习与数据挖掘简介
  9. 知名互联网公司系统架构图[第2期]
  10. 6.3 交通工具类
  11. vs2013编译 解决 error c1083 无法打开文件 'winsock2.h' 等问题记录
  12. 在Godot中制作杀戮尖塔的箭头
  13. 性能强悍的CSS动画库--Animate.css
  14. 解决canvas导出图片模糊问题
  15. linux卸载cuda10.0,Ubuntu卸载cuda10.0
  16. CVPR21小样本检测:蒸馏上下文助力小样本检测(代码已开源)
  17. PHP笔记 17 18 19 20 21
  18. 读取用户的输入,直到输入quit时退出
  19. PCB Layout软件分析对比(AD、Pads、Allegro)
  20. 国内 3 大物联网设备 OTA 服务选型指南

热门文章

  1. 笔记整理3——python实现MAC分析地理位置
  2. Markdown语言基础使用教程
  3. golang微信机器人_如何使用Golang从头开始创建Twitter机器人
  4. VScode软件使用之鼠标右键直接打开工程文件夹
  5. mysql 恢复数据库乱码了_再谈MySQL数据库备份恢复和乱码问题
  6. 数据分析必会工具之SmartPLS
  7. 在计算机中排顺序用什么函数,实例教你学Excel:函数排序与筛选
  8. 使用IDEA设计登录页面完成假登录
  9. 说说宾得机身的十大人性化设定和功能[转]_我是亲民_新浪博客
  10. 手机VIP邮箱怎么注册?探秘VIP邮箱登陆入口有哪些?