簡體   English   中英

流星助手錯誤

[英]Meteor helper erroring

我正在定義一個簡單的幫手:

ccFees: function(){
  var event = Events.findOne(this._id);
  return event
}

返回對象:[object Object]

但是當我添加一個存在的屬性時,就像這樣:

ccFees: function(){
  var event = Events.findOne(this._id);
  return event.cost
}

......它的錯誤。

Exception from Deps recompute function: TypeError: Cannot read property 'cost' of undefined

奇怪的是,信息在第一次渲染時顯示為預期,但是如果我在初始創建之后修改對象,那么它就會出錯。 任何幫助,將不勝感激。 這是一項超級常規任務,但它正在轟炸。 這可能與Blaze有關嗎?

該屬性確實存在,但不存在對象。 客戶端上的數據庫調用僅返回已通過訂閱通道獲取的內容,因此在從服務器中提取對象之前, findOne方法可以返回null。 我不確定為什么在你的情況下這發生在更新后,但這是一般的想法。

修復很簡單:添加一個安全措施來檢查您正在處理的對象是否存在:

ccFees: function() {
  var event = Events.findOne(this._id);
  if(!event) return '';
  return event.cost;
},

在這個簡單的例子中,你可以用簡短的形式寫它:

ccFees: function() {
  var event = Events.findOne(this._id);
  return event && event.cost;
},

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM