half-life
@half-life

Meteor-React-FlowRouter не выгружает данные из БД при релоаде страницы?

Доброго времени суток имеется такой вот роут
renderMainLayoutWith = (component, pageTitle) ->
  DocHead.setTitle if pageTitle? then pageTitle else '404 - Page not found :('
  ReactLayout.render MainLayout,
    header: `<Header />`
    content: component
    footer: `<Footer />`

FlowRouter.route '/',
  name: 'Home'

  action: ->
    renderMainLayoutWith `<Home />`, @name

FlowRouter.route '/:url',
  name: 'MultiRouter'
  triggersEnter: [ ->
    url = FlowRouter.current().path
    try
      @renderName = Routing.findOne({link: url}).name
    catch TypeError
      @renderName = '404 - Page not found :('
  ]
  action: ->
    switch renderName
      when "Home" then renderMainLayoutWith `<Home />`, renderName
      when "About Me" then renderMainLayoutWith `<AboutMe />`, renderName
      when "Notebook" then renderMainLayoutWith `<Notebook />`, renderName
      when "Portfolio" then renderMainLayoutWith `<Portfolio />`, renderName
      when "Contacts" then renderMainLayoutWith `<Contacts />`, renderName
      else
        renderMainLayoutWith `<PageNotFound />`, renderName

FlowRouter.notFound =
  action: ->
    renderMainLayoutWith `<PageNotFound />`

Если переходить по навигации мышкой, то Routing.findOne({link: url}).name корректно работает, если же обновить страницу или вписать существующий путь руками то полявляется ошибка Uncaught TypeError: Cannot read property 'name' of undefined Почему так? и как это исправить или обойти?
  • Вопрос задан
  • 191 просмотр
Пригласить эксперта
Ответы на вопрос 1
@aylo
Я бы на Вашем месте использовал ReactRouter.
По делу.
Скорее всего не успевает получить данные вот тут
@renderName = Routing.findOne({link: url}).name
Попробуйте проверить через консоль лог Meteor.loggingIn(), по моим опытам при обновлении страницы Meteor.loggingIn() возвращает true и тут уже можно повесить лоадер как вариант.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы