我正在尝试添加v-for
的组件。数据源infoTexts
是一个Object,其中包含区域设置代码作为键,消息作为值。
例如:
{
nl: 'Text in Dutch',
fr: 'Text in French',
en: 'Text in English'
}
以下是我用来包含组件的代码:
<text-editor v-for="(value, index) in infoTexts" :key="index" :database-message-contents="value" :message-locale-code="index"></text-editor>
database-message-contents
和message-locale-code
都是text-editor
组件的道具。
我的控制台中未收到任何错误消息,但text-editor
未显示。
答案 0 :(得分:0)
这个问题涉及对Vue生命周期的误解。
我在infoTexts
方法中创建了mounted
。将其重新定位到created
方法可以解决问题。
答案 1 :(得分:0)
您自己对问题的回答只是部分正确,可能会误导其他用户。
让我解释原因:
您mounted
方法中的假设代码:
this.infoTexts.nl = 'Text in Dutch'
此代码不起作用,因为 Vue无法检测在运行时添加到对象的属性。
您应该做的是使用提供的Vue.set方法。 所以你的新代码看起来就像这样。
Vue.set(this.infoTexts, 'nl', 'Text in Dutch');
使用上面的代码,您可以随时根据需要添加新语言。
即使您没有提供显示infoTexts
数组创建的代码,这也会导致95%的问题。