0
我在鐵路由器的Route控制器的onData()函數中看到了一個奇怪的異常。這個例外似乎只是在我更改了一個文件,這當然會導致meteor重新啓動應用程序後發生。我在github上提供了一個示例,演示了這裏的問題:https://github.com/benmonro/iron-router-bugIron Router在onData中拋出異常
如果通過單擊提交添加一個人,然後單擊該人的姓名,一切都會正常加載。但是,如果您然後對某些js進行更改(例如添加評論)。 Meteor將重新加載,你會在'onData()'方法中獲得異常,該方法試圖使用'data()'函數返回的數據屬性。
唯一的例外是在這裏:所以你需要添加一個guard或早日回到回調
> Exception in defer callback: TypeError: Cannot read property 'name' of
> undefined
> at RouteController.extend.onData (http://localhost:3000/irDataBug.js?8327f0bf1bedee2437ec14bc4509d8f7e85079ab:33:19)
> at RouteController.runHooks (http://localhost:3000/packages/iron-router.js?e9fac8016598ea034d4f30de5f0d356a9a24b6c5:827:16)
> at http://localhost:3000/packages/iron-router.js?e9fac8016598ea034d4f30de5f0d356a9a24b6c5:2137:16
> at Utils.extend._run.withNoStopsAllowed (http://localhost:3000/packages/iron-router.js?e9fac8016598ea034d4f30de5f0d356a9a24b6c5:2098:21)
> at _assign._compute (http://localhost:3000/packages/deps.js?4a82362ae66e863a1c1a8b0a5fec6f665e2038d1:228:38)
> at new Deps.Computation (http://localhost:3000/packages/deps.js?4a82362ae66e863a1c1a8b0a5fec6f665e2038d1:160:10)
> at Object._assign.autorun (http://localhost:3000/packages/deps.js?4a82362ae66e863a1c1a8b0a5fec6f665e2038d1:380:13)
> at http://localhost:3000/packages/iron-router.js?e9fac8016598ea034d4f30de5f0d356a9a24b6c5:2134:12
> at Utils.extend._run.withNoStopsAllowed (http://localhost:3000/packages/iron-router.js?e9fac8016598ea034d4f30de5f0d356a9a24b6c5:2098:21)
> at _assign._compute (http://localhost:3000/packages/deps.js?4a82362ae66e863a1c1a8b0a5fec6f665e2038d1:228:38)
我很困惑。爲什麼當沒有任何數據時它會調用'onData'?如果數據沒有準備好,那麼不應該只是等待或超時而不是僅返回null? – Ben
這是一個很好的問題。 :)您可能想要提交問題和/或開始挖掘IR代碼以找出原因。 –