2017-01-04 8 views
0

Я использую FlowRouter. Если я начну на домашней странице, все будет хорошо. Я могу работать через маршруты (сменить страницы) без проблем. Однако, если я ударил обновление в браузере, я получаю ряд ошибок. Мой URL выглядит следующим образом:FlowRouter Reload не работает

/story/586d536e34821281735b53a4

Идентификатор возвращается в консоли по следующему методу:

Tracker.nonreactive(function(){

Я думаю, подписка завершается, поэтому я немного путают, почему перезагрузка URL-адреса отличается от загрузки с домашней страницы.

Что я не понимаю здесь?

+0

Каковы сообщения об ошибках, которые вы видите точно? – Khang

+0

Это ошибка, я получаю: '' 'TypeError: Не удается прочитать свойство 'аудио' неопределенной в story.js: 121 в Object.Tracker.nonreactive (tracker.js хэш = 9f8a0ce ...: 631) на Object.audios (story.js: 111) в blaze.js хэш = 983d07a ...: 2994 в blaze.js хэш = 983d07a ...: 1653 в blaze.js хэш = 983d07a ...: 3046 в Function.Template._withTemplateInstanceFunc (blaze.js? hash = 983d07a ...: 3687) ... '' ' Что он переводит в IMO, так это то, что mongo' '' find''' возвращается неопределенным, потому что подписка isn ' t завершается должным образом. Но только при перезагрузке. –

ответ

0

Перезагрузка url будет сделать HTTP-запрос на сервер, чтобы получить весь источник приложения. Принимая во внимание, что переход на другой маршрут не делает никаких HTTP-запросов, чтобы получить источник приложения, поскольку они уже доступны (они были загружены с предыдущего маршрута), в этом случае маршрутизатор просто получит соответствующий контент и отобразит его страница. Это нормальное поведение для приложений Meteor и всех других одностраничных приложений.

Ошибка, с которой вы сталкиваетесь, связана с тем, что ваши данные еще не доступны на клиенте, чтобы исправить это, вы можете просто использовать заполнитель, если значение равно undefined.