Это немного странно, и я хотел бы добраться до сути.
У меня есть страница, на которой пользователи вводят свой адрес электронной почты и нажимают кнопку, а затем я показываю: «Вы зарегистрированы!» сообщение - простое.
Для этого у меня есть два пути. Основной маршрут и «заказной» маршрут.
<Route name="app" path="/" handler={Main}>
<Route name="signed-up" path="signed-up" handler={SignedUp} />
<DefaultRoute handler={Signup} />
</Route>
На первой странице, когда пользователи вводят адрес электронной почты и нажимают кнопку, я запускаю POST AJAX, чтобы сохранить адрес электронной почты в моей серверной базе данных (используя пакет Axios), и когда это завершено, я перехожу к маршруту «зарегистрирован». .
handleSubmit() {
var router = this.context.router;
var email = this.refs.email.getDOMNode().value;
this.refs.email.getDOMNode().value = '';
helpers.postSignupEmail(email).then((response) => {
// then display the signed up page
router.transitionTo("signed-up");
});
}
Теперь, когда я впервые ввожу URL своей страницы
http://localhost:1338
Браузеры (Chrome, FireFox, Safari), похоже, все меняют URL-адрес на
http://localhost:1338/#/
Справедливо. В FireFox я набираю адрес электронной почты и нажимаю кнопку отправки, все работает хорошо и приводит меня к
http://localhost:1338/#/signed-up
Однако теперь в Chrome, когда я нажимаю «Отправить», маршрут не меняется. На самом деле в консоли разработчика я вижу ошибку.
Во-первых, почему был отменен запрос на "публикацию"? Во-вторых, когда это происходит, Chrome не отвечает. Итак, я обновляю страницу, а затем получаю «морскую смерть экрана» Chrome.
Теперь, как ни странно, если я изменю первоначальный URL на
http://localhost:1338/?#/
(вставив вопросительный знак перед решеткой), тогда в Chrome все работает нормально. Итак, это заставляет меня задуматься, что это как-то связано с моими путями или параметрами маршрута.
Любые идеи?