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 文件中对应的Helpersobject 方法和Mongo DataBase 对象名称提供唯一名称来解决它。

希望它也对你有用:)

【讨论】:

【参考方案4】:

对我来说,在 Meteor 的一个周期中,我收到了这个错误,它说 ReactionProduct.selectedVariant()null

我刚刚处理了null 的案例:

if (ReactionProduct.selectedVariant() === null) 
  return;

它对我有用。

【讨论】:

以上是关于Tracker 重新计算功能的异常的主要内容,如果未能解决你的问题,请参考以下文章

怎么检测tracker服务器有效?

FastDFS集群tracker实现负载均衡

torrent是啥,国内能打开的软件都有哪些?

在Linux系统下执行npm命令报错Tracker “idealTree“ already exists

为啥 Jcrop-tracker 不显示它的正确位置?

Cluster基础:配置tracker配置storage文件测试及web访问