これは少し奇妙で、その真相を突き止めたいと思います。
ユーザーがメールアドレスを入力してボタンをクリックすると、「サインアップしました!」と表示されるページがあります。メッセージ - シンプル。
そのために、私は2つのルートを持っています。メインルートと「サインアップ」ルート。
<Route name="app" path="/" handler={Main}>
<Route name="signed-up" path="signed-up" handler={SignedUp} />
<DefaultRoute handler={Signup} />
</Route>
最初のページで、ユーザーが電子メール アドレスを入力してボタンをクリックすると、POST AJAX を起動してバックエンド DB (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 で問題なく動作します。だから、ルートパスやパラメータと関係があるのだろうかと思います。
何か案は?