3

これは少し奇妙で、その真相を突き止めたいと思います。

ユーザーがメールアドレスを入力してボタンをクリックすると、「サインアップしました!」と表示されるページがあります。メッセージ - シンプル。

そのために、私は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 で問題なく動作します。だから、ルートパスやパラメータと関係があるのだろうかと思います。

何か案は?

4

1 に答える 1