我有一个父组件Dashboard.vue
,该子组件加载子组件DailySchedule.vue
。我们正在使用VueX
,而DailySchedule
会根据更改内容(例如dispatch
,updateThis
,{{ 1}}等),然后我将其称为通用deleteThat
。当createThat
处于saveDaysSettings
组件中时,这100%的时间有效。
然后我需要从saveDaysSettings
更新商店,因此我将Dashboard
方法提取到我们现有的Dashboard
文件中,该文件是此页面的混合文件。
当我说saveDaysSettings
方法(从现在使用mixin的newScheduling.js
开始)时,一切仍然很好。
deleteBlockedTime
具有单个方法DailySchedule
,该方法再次调用Dashboard
(成功),然后调用notesChanged
方法,但失败,并显示以下内容:
dispatch
saveDaysSettings
行。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
,似乎无关紧要,因为我四处更改了一下以查看行是否会更改,而行不会更改。以下是methods: {
方法最初存在的原始import
组件(已删除了不必要的代码):
DailySchedule
这还有许多其他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
那么为什么调用从一个组件而不是另一个组件进行?我认为没有一个会起作用,或者所有人都会起作用。