私はマイクロサービスとして自分のウェブサイトのフロントエンドを書いた状況があります。私のウェブサイトの各機能セクションは、cssとhtmlにバンドルされた反応生息地のアプリケーションです。私はこれをやったので、私がサイト上のどこででもこれらのセクションを再利用することができます。同じページの他のReactアプリからのReactアプリケーションへのアクセス
私の問題はチェックアウトの領域では、ログインアプリケーション(成功した応答)からcustomerIdを配信アドレスアプリケーションに渡す必要があるため、デフォルトのアドレスに戻すことができます。新しいアプリケーションを作成し、ログインと配信アドレスアプリケーションのコードを複製する必要はありません。なぜなら、Webサイトのどこかでそれらを使用する必要があるからです。
だから私の質問です。ページの再読み込みを行わずに、このカスタマーIDをログインアプリケーションから配送先住所アプリケーションに渡すにはどうすればよいですか?その反応アプリケーションの外部から反応アプリケーションメソッドにアクセスする方法はありますか?
ログインクリックハンドラ:
clickHandler(e) {
e.preventDefault();
let payload = {"email":this.props.email, "password":this.props.password};
AuthenticationApp.login(payload).then((response) => {
if (this.props.referrer === "checkout") {
$("#checkout_login-register-tab").addClass("done");
$("#checkout_login-delivery-tab").removeClass("todo");
// Temporary hack to reload page until we can pass new user session into delivery/billing react app from here.
location.reload();
}
this.props.updateParentState({isLoggedIn: true});
})
.catch(function(response){
console.log("res2 - catch", response)
});
}
配信アドレスのアプリケーションが再レンダリングし、サービスから得意先拾うので、私はこちらのページのリロードを強制しています。何らかの形で関数にアクセスしたり、アプリケーションを強制的にリセットしたりして、この別のアプリケーションからこの段階で配信アプリケーションを再レンダリングする方法が必要ですか?これは可能ですか、またはページリロード以外の回避策がありますか?
あなたの配信先のアプリケーションは反応のないアプリであり、ログインは反応コンポーネントであり、ログインアプリから配信アプリにデータを渡す必要がありますか? – madhurgarg
配信アプリは別の反応アプリケーションではありません。だから、私は状態を更新することができますので、このアプリケーションの制御を得ることができるので、ログインアプリケーションから配信反応アプリケーションの関数にアクセスすることによって、1から別の変数を渡す必要があります。 – Sprose
あなたがログインした後に(あなたのケースの顧客IDに)いくつかのデータを使用したい場合は、どちらかのlocalStorageやクッキーに、セッションデータを設定する必要があり、その後、あなたはあなたの配信アプリケーションのどこにでもそのデータにアクセスすることができます。ログインアプリと配信アプリのコードを追加できますか? – madhurgarg