Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 具有v形的组件,用于不渲染_Javascript_Vue.js_Vuejs2 - Fatal编程技术网

Javascript 具有v形的组件,用于不渲染

Javascript 具有v形的组件,用于不渲染,javascript,vue.js,vuejs2,Javascript,Vue.js,Vuejs2,我试图包含一个带有v-for的组件。数据源infotext是一个对象,包含区域设置代码作为键,消息作为值。 例如: 下面是我用来包含组件的代码: <text-editor v-for="(value, index) in infoTexts" :key="index" :database-message-contents="value" :message-locale-code="index"></text-editor> 数据库消息内容和消息区域设置代码都是文本编

我试图包含一个带有
v-for
的组件。数据源
infotext
是一个对象,包含区域设置代码作为键,消息作为值。 例如:

下面是我用来包含组件的代码:

<text-editor v-for="(value, index) in infoTexts" :key="index" :database-message-contents="value" :message-locale-code="index"></text-editor>

数据库消息内容
消息区域设置代码
都是
文本编辑器
组件上的道具


我的控制台中没有收到任何错误消息,但
文本编辑器未显示。

该问题涉及对Vue生命周期的误解。
我在
mounted
方法中创建
infotext
。将其重新定位到创建的
方法解决了问题。

您自己对问题的回答仅部分正确,可能误导其他用户。

让我解释一下原因:

  • 此问题的根源不在于使用错误的Vue生命周期方法
  • v-for本身是反应性的,这意味着您可以在生命周期的任何时候添加元素,它只需重新渲染即可
您的
挂载方法中假定的代码:

this.infoTexts.nl = 'Text in Dutch'
此代码不起作用,因为Vue无法在运行时检测添加到对象的属性

相反,您应该使用提供的方法。 所以你的新代码看起来像这样

Vue.set(this.infoTexts, 'nl', 'Text in Dutch');
使用上面的代码,您可以随时添加新语言,也可以使用任何生命周期方法添加新语言


即使您没有提供显示创建
infoTexts
数组的代码,也有95%的情况下会出现此问题。

您的代码(可能是您的组件)一定有其他问题。根据你提供的数据,效果很好。实际上我也有同样的问题,这个答案应该排在前面。了解Vue的生命周期是一个很大的帮助!
Vue.set(this.infoTexts, 'nl', 'Text in Dutch');