Tracker 重新计算功能的异常
Posted
技术标签:
【中文标题】Tracker 重新计算功能的异常【英文标题】:Exception from Tracker recompute function 【发布时间】:2015-07-03 13:58:00 【问题描述】:我有一个模板助手可以访问我的应用程序中的集合。但我关闭了响应性:
Template.homeBoxGroupsTpl.helpers(
boxes: function ()
return Boxes.find(,
sort:
order: 1
,
reactive: (Session.get("homeCanvasTplReactive") || false)
);
);
在我的页面上插入一个新元素后,该元素又会更新集合,Meteor 将在浏览器控制台中引发错误:
Error: Exception from Tracker recompute function: reporters.js?1429904535194:67
Error: Error: Bad index in range.getMember: 16
at DOMRange.getMember (http://tidee-vm/packages/blaze.js?a5c324925e5f6e800a4c618d71caf2848b53bf51:586:11)
at http://tidee-vm/packages/blaze.js?a5c324925e5f6e800a4c618d71caf2848b53bf51:2727:45
at Object.Tracker.nonreactive (http://tidee-vm/packages/tracker.js?6d0890939291d9780f7e2607ee3af3e7f98a3d9c:593:12)
at Object.Blaze.Each.eachView.onViewCreated.eachView.stopHandle.ObserveSequence.observe.changedAt (http://tidee-vm/packages/blaze.js?a5c324925e5f6e800a4c618d71caf2848b53bf51:2721:17)
at http://tidee-vm/packages/observe-sequence.js?0532a9dd76dd78f543eb4d79a1e429df186d8bde:313:21
at Function._.each._.forEach (http://tidee-vm/packages/underscore.js?0a80a8623e1b40b5df5a05582f288ddd586eaa18:164:22)
at diffArray (http://tidee-vm/packages/observe-sequence.js?0532a9dd76dd78f543eb4d79a1e429df186d8bde:299:5)
at http://tidee-vm/packages/observe-sequence.js?0532a9dd76dd78f543eb4d79a1e429df186d8bde:147:9
at Object.Tracker.nonreactive (http://tidee-vm/packages/tracker.js?6d0890939291d9780f7e2607ee3af3e7f98a3d9c:593:12)
at http://tidee-vm/packages/observe-sequence.js?0532a9dd76dd78f543eb4d79a1e429df186d8bde:121:15
任何想法如何调试这个,还是流星问题?
【问题讨论】:
reporters.js 的第 67 行是什么? reporter.js 只是报告错误“来自 ”。 【参考方案1】:Meteor 的错误消息在除 Chrome 之外的所有浏览器中都很糟糕,因为 Meteor 期望堆栈跟踪包含错误消息,但这仅由 Chrome 完成。我不想这么说,但在调试 Meteor 应用程序时你可能不得不使用 Chrome。 :(
【讨论】:
【参考方案2】:我没有解决方案,但我也遇到了同样的错误,并且能够解决我的情况,所以发布它,希望它可以帮助您调试问题(尽管这似乎几乎没有任何帮助)。原因是使用了.length
。我有一个大数组(数组名称:数据),为了缩短它(减少数组长度),我分配了data.length = 5
,这在某种程度上导致了错误,并且流星助手没有按预期工作。 删除该行对我有用,我通过 for 循环完成了数组的缩短,并将前五个元素存储在不同的变量中。
【讨论】:
【参考方案3】:我也遇到过类似的问题 :(
我能够通过为Tempaltes
、其在.js 文件中对应的Helpers
object 方法和Mongo DataBase
对象名称提供唯一名称来解决它。
希望它也对你有用:)
【讨论】:
【参考方案4】:对我来说,在 Meteor 的一个周期中,我收到了这个错误,它说 ReactionProduct.selectedVariant()
是 null
。
我刚刚处理了null
的案例:
if (ReactionProduct.selectedVariant() === null)
return;
它对我有用。
【讨论】:
以上是关于Tracker 重新计算功能的异常的主要内容,如果未能解决你的问题,请参考以下文章