关于vue父组件动态传参给子组件的问题

问题是这样的,我在父组件里有个选择下拉框,默认选择第一个,每选择不一样的时候就要动态更新子组件。
我可以在子组件里通过watch来动态的监听父组件传过来的数据,但是却改变不了子组件里的data里的初始化数据。因为这个初始化数据会影响页面,如图1,图中的输入框等都是通过动态数据加载出来的,不同的选择模板出来的文本框的数量类型都不一样,我用的是element ui的那个组件,如果不初始化就输入不了,所以想问下大家有没有可以动态更新子组件全部的,包括初始化这块
clipboard.png

这个是父组件代码:
clipboard.png

下面是子组件代码:
图片描述

我其实问题最主要的是子组件里的文本框的数量是根据contractTemplateDetail里返回的数据决定的,会给我返回一个数组,数组的长度决定输入框的数量,而子组件的data里会对contractTemplateDetail的数据进行遍历然后会给输入框做一个初始化,只有做了初始化文本框才能正常输入,我监听了contractTemplateDetail这个也只能改变这个数据,但是初始化只做一次呢,也就是data里遍历做初始化只有一开始一次,后面的动态改变都不能再初始化呢,我想问大家有没有好的办法

阅读 4.3k
3 个回答

你在template里面用v-if或者v-show这种先写好所有模板,然后改变对应的true值来使用不同的模板应该可以的

你的watch的代码呢? 这个要再watch里进行处理的。要看你的代码 watch

如果你传给子组件是data对象呢,watch也就能监听到contractTemplateDetails,和flatCode的变化了吧

data: {
    contractTemplateDetails:contractTemplateDetails,
    flatCode: flatCode
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题