【发布时间】:2020-11-13 13:52:25
【问题描述】:
嘿,我的代码如下所示:
componentData: [
{ name: TestPane, props: { data: this.cars }, id: 1 },
{ name: TestPane, props: { data: this.persons }, id: 2 },
]
<div v-for="component in componentData" :key="component.id">
<component v-bind:is="component.name" v-bind="component.props">
</component>
</div>
道具不是反应式的。当我在没有:data=cars 循环的情况下正常传递道具时,它们是反应性的。但我需要为我的项目循环传递它们。有什么想法吗?
【问题讨论】:
-
你刚刚写了
v-bind,就像写:="component.props"一样,没有意义。你需要写你想要传递的东西,比如v-bind:data -
假设
componentData与cars和persons在同一个data块中定义,这就是问题所在。它们在您定义componentData时将不存在,即使它们在上面列出。 (v-bind语法 is valid。) -
你能添加到你的
TestPane这个:created(){console.log(this.data);}吗? -
如果@Dan 是对的,你可以查看这个答案stackoverflow.com/questions/49614837/…
-
Ifaruki v-bind 是有效的,就像 Dan 链接的文档所说的那样。 @Dan 是的,你是对的。我的问题有解决方案吗?
标签: javascript vue.js