vue父组件给子组件传值,子组件不渲染的原因及解决方法

父组件传递给子组件的数据,如果是一个复杂对象(例如一个数组或对象),那么子组件只会监听对象的引用而不是对象的内容。这意味着当对象的内容发生变化时,子组件不会更新。

解决:
1、在子组件使用 watch 监听 props传过来的值,如果发现改变,调用forceUpdate刷新视图。

this.$forceUpdate()

2、父组件中声明一个布尔变量,数据发生变化后,切换一下变量状态,可刷新子组件视图。

3、数据发生变化后,在下面调用一下splice方法修改原数组长度(索引、截取长度都为0),数组不变,但视图可成功渲染。

this.list.splice(0, 0)

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-06 08:42:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-06 08:42:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-06 08:42:03       82 阅读
  4. Python语言-面向对象

    2024-01-06 08:42:03       91 阅读

热门阅读

  1. 从0开始的编程生活

    2024-01-06 08:42:03       54 阅读
  2. Sentinel 使用

    2024-01-06 08:42:03       51 阅读
  3. EasyExcel的追加写入(新增POI、CSV)

    2024-01-06 08:42:03       54 阅读
  4. 使用Android 协程代替Handler

    2024-01-06 08:42:03       51 阅读
  5. DeepAR

    DeepAR

    2024-01-06 08:42:03      48 阅读
  6. 全排列结构范例_超实用

    2024-01-06 08:42:03       46 阅读
  7. CCF-CSP 201809-2 买菜 C++满分题解

    2024-01-06 08:42:03       53 阅读
  8. 图像分割实战-系列教程12:deeplab系列算法概述

    2024-01-06 08:42:03       55 阅读