Vue异步方法在混入部分之前有效(未定义是不可迭代的)

时间:2019-03-21 17:25:41

标签: javascript vue.js

我有一个父组件Dashboard.vue,该子组件加载子组件DailySchedule.vue。我们正在使用VueX,而DailySchedule会根据更改内容(例如dispatchupdateThis,{{ 1}}等),然后我将其称为通用deleteThat。当createThat处于saveDaysSettings组件中时,这100%的时间有效。

然后我需要从saveDaysSettings更新商店,因此我将Dashboard方法提取到我们现有的Dashboard文件中,该文件是此页面的混合文件。

当我说saveDaysSettings方法(从现在使用mixin的newScheduling.js开始)时,一切仍然很好。

deleteBlockedTime具有单个方法DailySchedule,该方法再次调用Dashboard(成功),然后调用notesChanged方法,但失败,并显示以下内容:

错误

dispatch
  • 第53行实际上是该文件中的saveDaysSettings行。
  • 第5行只是最后一个newScheduling.js:53 Uncaught (in promise) TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator)) at VueComponent._callee$ (newScheduling.js:53) at tryCatch (runtime.js:65) at Generator.invoke [as _invoke] (runtime.js:303) at Generator.prototype.(anonymous function) [as next] (http://localhost:58659/js/vendor.js:370:21) at step (newScheduling.js:5) at newScheduling.js:5 at new Promise (<anonymous>) at VueComponent.<anonymous> (newScheduling.js:5) at VueComponent.saveDaysSettings (newScheduling.js:53) at Dashboard.vue:386 ,似乎无关紧要,因为我四处更改了一下以查看行是否会更改,而行不会更改。

DailySchedule组件

以下是methods: {方法最初存在的原始import组件(已删除了不必要的代码):

DailySchedule

newScheduling.js

这还有许多其他saveDaysSettings和常规export default { store: store, ... methods: { ... async saveDaysSettings() { ... // Gather what to save in the model let response = await fetchJson( this.folderPrefix, 'PathToMyAPI', 'POST', JSON.stringify(model) ); checkResponseStatus(response); let responseData = await response.json(); this.$store.dispatch('scheduling/dailySettingsUpdated', responseData.RowVersionValue); }, deleteBlockedTime(block) { this.$store.dispatch('scheduling/deleteBlockTime', block.Id) .then(this.saveDaysSettings); }, }, }; 都可以正常工作。

computed

仪表板组件

method

问题

那么为什么调用从一个组件而不是另一个组件进行?我认为没有一个会起作用,或者所有人都会起作用。

0 个答案:

没有答案