Я использую FlowRouter для маршрутизации в моем приложении Meteor + React. Я определил некоторые маршруты, как это:Страница перезагружается при использовании href для изменения маршрута в FlowRouter
FlowRouter.route('/about', {
action:() => {
mount(MasterLayout, {
content: <AboutPage />,
});
},
});
FlowRouter.route('/terms', {
action:() => {
mount(MasterLayout, {
content: <TermsPage />,
});
},
});
Теперь, когда я нажимаю на ссылку, как <a href="/about">About</>
, он перегружает всю страницу, а не только изменения содержания.
Кроме того, если я использую FlowRouter.go('/about')
, он отлично работает и не перезагружает страницу, только меняя содержимое.
Пожалуйста, расскажите мне, что здесь происходит.
Спасибо за подробное объяснение. Как проверить, находится ли тег '' внутри контейнера, который вызывает '.stopPropagation()'? Кроме того, я думал о том, что сам 'e.preventDefault()' и 'FlowRouter.go()' сам, но мне нужно будет заменить тег '' в каждом месте. Было бы лучше, если бы я начал использовать '' тег, чтобы работать сам. – suheb
Вы используете React справа? то вы могли бы написать компонент для обертывания нормального тега '', этот компонент будет захватывать событие click на теге '' и выполнять задание навигации. – Khang
Нашел! [twbs: bootstrap] (https://atmospherejs.com/twbs/bootstrap) пакет вызывал '.stopPropagation()'. Снятие этого делало трюк. Удалит его навсегда, поскольку я даже не использую bootstrap. Большое вам спасибо @Khang – suheb