Vue框架下如何解决父组件修改数组传给子组件无法渲染问题
在公司遇到个需求,随着element tabs标签切换,form表单label值需要改变,
我想着这不是很简单吗,随手开发出form表单,一个tabs子组件,好戏来了,
我在父组件进行数据传递,当切换,我把数据进行修改传过去,问题来了,界面不渲染,一个个排查,打印一下控制台,嗯,数据变化了,怎么界面不渲染呢,我试着用this.
f
o
r
c
e
u
p
d
a
t
e
强
制
渲
染
,
然
而
还
是
没
软
用
,
再
来
,
我
在
子
组
件
进
行
监
听
,
没
用
,
深
度
监
听
,
没
用
,
不
带
变
化
的
,
后
面
想
着
是
不
是
插
入
数
据
有
问
题
,
思
路
来
了
解
决
办
法
也
就
有
了
,
贴
代
码
!
原
来
的
t
h
i
s
.
f
o
r
m
I
t
e
m
s
[
4
]
=
里
面
是
我
修
改
的
j
s
o
n
对
象
后
面
我
这
样
赋
值
t
h
i
s
.
forceupdate强制渲染,然而还是没软用,再来,我在子组件进行监听,没用,深度监听,没用,不带变化的,后面想着是不是插入数据有问题,思路来了解决办法也就有了,贴代码! 原来的 this.formItems[4] = {里面是我修改的json对象} 后面我这样赋值 this.
forceupdate强制渲染,然而还是没软用,再来,我在子组件进行监听,没用,深度监听,没用,不带变化的,后面想着是不是插入数据有问题,思路来了解决办法也就有了,贴代码!原来的this.formItems[4]=里面是我修改的json对象后面我这样赋值this.set(this.formItems, 4, { 里面是我修改的json对象 })
这样监听到了,界面也渲染了,大致问题了解了一下,还是由于 JavaScript 的限制,Vue 不能检测数组对象属性的添加或删除,至于是不是js的限制,还是vue其中的问题我就没去深究啦
Vue框架下如何解决父组件修改数组传给子组件无法渲染问题
最新推荐文章于 2024-01-17 17:06:42 发布