meteor – 加载/刷新页面时出错:跟踪器afterFlush函数的exception:未定义

如上所述,我得到一个错误和一个空的页面(但包括导航栏的布局在那里)被显示。 当我通过浏览器刷新链接或万一通过浏览器直接访问链接时,总是会出现此错误。 一切都很好,当我使用我的导航栏浏览模板。 所以,在页面真正的“加载”之后,我看不到任何数据。

我在Windows上使用Meteor Blaze。

这是一个截图: 在这里输入图像说明

图片和其他数据都没有显示。

我不知道,如果这是100%的行为的原因,但总是如果这种行为发生,我得到这个错误消息在客户端控制台:

跟踪器afterFlush函数的exception:未定义

TypeError:无法读取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位于FireCallbacks( http:// localhost:3000 / packages / blaze.js?hash = f33d3dfed63a491d24e3aa07ad66c24b5fe8c761 )上的Function.Template._withTemplateInstanceFunc( http:// localhost:3000 / packages / blaze.js?hash = f33d3dfed63a491d24e3aa07ad66c24b5fe8c761:3744:12 ) :3394:12 )在Blaze.View。 ( 位于http:// localhost:3000 / packages / blaze.js?hash = f33d3dfed63a491d24e3aa07ad66c24b5fe8c761:3487: _withCurrentView( http:// localhost:3000 / packages / blaze.js?hash = f33d3dfed63a491d24e3aa07ad66c24b5fe8c761:2271:12 )在http:// localhost:3000 / packages / blaze.js?hash = f33d3dfed63a491d24e3aa07ad66c24b5fe8c761:1844:15在Object.Tracker onGlobalMessage( http:// localhost:3000 / packages / meteor.js?hash = 6d285d84547b3dad9717a7c89c664b61b45ea3d8:398:23 )上的._runFlush( http:// localhost:3000 / packages / tracker.js?hash = 997515fa2d5b0530ba07741da556c4b36963ef3b:548:11 )未定义

我search跟踪器,afterFlush等,但我不知道我必须改变我的代码?

我感谢所有帮助,谢谢。

当你加载这个“新鲜”的路由时(使用刷新或者将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 :最后有错误发生的行号。