我使用数组中的集合注册了三个Tracker.autorun函数:[' tags',' allUsers',' userGroups']
formObj.collections.forEach(collection => {
Tracker.autorun(() => {
const handle = Meteor.subscribe(collection);
if (handle.ready()) {
dispatch(collectionIsReady(formObj, collection));
console.log(collection);
if (_.isEqual(formObj.collections, formObj.loadedCollections)) {
dispatch(collectionsAreReady(formObj));
dispatch(formIsReady(formObj));
}
}
});
});
如果其中一个集合发生了更改,则执行Tracker.autorun函数,但仅执行最后一个数组项的集合名称(控制台输出:" userGroups")。我该怎么做才能获得正确的收藏品名称?
感谢您的帮助
修改 无需知道正确的集合名称。
由于正确执行的自动运行功能,我还将计算(c)传递给collectionIsReady()。
formObj.collections.forEach(collection => {
Tracker.autorun((c) => {
const handle = Meteor.subscribe(collection);
if (handle.ready()) {
dispatch(collectionIsReady(formObj, collection, c));
if (_.isEqual(formObj.collections, formObj.loadedCollections)) {
dispatch(collectionsAreReady(formObj));
dispatch(formIsReady(formObj));
}
}
});
});