Meteor - 加载/刷新页面时出错:Tracker afterFlush函数异常:undefined

时间:2017-10-03 21:37:46

标签: javascript node.js meteor routing meteor-blaze

如上所述,我收到错误并显示空页(但包含导航栏的布局)。当我通过浏览器刷新链接或直接通过浏览器访问链接时,总会发生此错误。当我使用导航栏浏览模板时,一切都很好。所以,在真正“加载”页面后,我看不到任何数据。

我在Windows上使用Meteor Blaze。

以下是截图: enter image description here

图片和其他数据均未显示。

我不确定,如果这是100%导致该行为的原因,但总是如果出现这种情况,我会在客户端控制台中收到此错误消息:

  

Tracker afterFlush函数的异常:undefined

  

TypeError:无法读取undefined的属性“username”       在Blaze.TemplateInstance。 (http://localhost:3000/app/client/templates/common/navigation.js?hash=142e989d312ba94a4b875a71e5e557bdd5255272:3:40)       在http://localhost:3000/packages/blaze.js?hash=f33d3dfed63a491d24e3aa07ad66c24b5fe8c761:3398:22       在Function.Template._withTemplateInstanceFunc(http://localhost:3000/packages/blaze.js?hash=f33d3dfed63a491d24e3aa07ad66c24b5fe8c761:3744:12)       在fireCallbacks(http://localhost:3000/packages/blaze.js?hash=f33d3dfed63a491d24e3aa07ad66c24b5fe8c761:3394:12)       在Blaze.View。 (http://localhost:3000/packages/blaze.js?hash=f33d3dfed63a491d24e3aa07ad66c24b5fe8c761:3487:5)       在http://localhost:3000/packages/blaze.js?hash=f33d3dfed63a491d24e3aa07ad66c24b5fe8c761:1845:14       at Object.Blaze._withCurrentView(http://localhost:3000/packages/blaze.js?hash=f33d3dfed63a491d24e3aa07ad66c24b5fe8c761:2271:12)       在http://localhost:3000/packages/blaze.js?hash=f33d3dfed63a491d24e3aa07ad66c24b5fe8c761:1844:15       at Object.Tracker._runFlush(http://localhost:3000/packages/tracker.js?hash=997515fa2d5b0530ba07741da556c4b36963ef3b:548:11)       在onGlobalMessage(http://localhost:3000/packages/meteor.js?hash=6d285d84547b3dad9717a7c89c664b61b45ea3d8:398:23)   未定义

我搜索了跟踪器,afterFlush等,但我不确定我的代码中需要更改什么?

感谢所有有帮助的人,谢谢。

1 个答案:

答案 0 :(得分:2)

当您加载此路线" fresh" (使用刷新或将URL粘贴到浏览器中)Meteor重新加载整个应用程序,包括Meteor.user()对象。在client/templates/common/navigation.js的第40行,您可能正在尝试访问Meteor.user().username,但Meteor.user()尚未加载,因此您收到了错误消息。您需要在代码中对此进行防御和/或显示加载模板,直到您的订阅和用户对象都准备就绪。

错误转储的第一行指向错误:

TypeError: Cannot read property 'username' of undefined at Blaze.TemplateInstance.
(http://localhost:3000/app/client/templates/common/navigation.js?hash=142e989d312ba94a4b875a71e5e557bdd5255272:3:40)

最后:40出现错误的行号。