Vue框架下如何解决父组件修改数组传给子组件无法渲染问题
在公司遇到个需求,随着element tabs标签切换,form表单label值需要改变,
我想着这不是很简单吗,随手开发出form表单,一个tabs子组件,好戏来了,
我在父组件进行数据传递,当切换,我把数据进行修改传过去,问题来了,界面不渲染,一个个排查,打印一下控制台,嗯,数据变化了,怎么界面不渲染呢,我试着用this.forceupdate强制渲染,然而还是没软用,再来,我在子组件进行监听,没用,深度监听,没用,不带变化的,后面想着是不是插入数据有问题,思路来了解决办法也就有了,贴代码!原来的this.formItems[4]=里面是我修改的json对象后面我这样赋值this.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 发布