ReactアプリケーションをWebpackにバンドルして、CDN上に置かれた分散コピーをクライアントに関連した多数の設定でソースと呼ばれ、初期化されるようにしたい。埋め込み可能なJavascriptプラグインをReactとWebpackで作成する
次のようにthisとthisを読んだ後、私は私のWebPACKのエントリファイルを設定していは:
// ... React requires etc.
(() => {
this.MyApp = (config) => {
// some constructor code here
}
MyApp.prototype.init =() => {
ReactDOM.render(<MyReactApp config={MyApp.config} />, someSelector);
}
})();
アイデアは私のクライアントでは、私は以下のような何かを行うことができますさ:
<script src="./bundle.js" type="text/javascript"></script>
<script type="text/javascript">
MyApp.init({
some: "config"
});
</script>
私のMyApp#init
関数は、クライアント上のいくつかのコンテナ内にReactアプリケーションをレンダリングします。
私は正しい方法でこれについて考えていますか?これについてもっと簡単で効率的な方法がありますか?
私のエラーはUncaught TypeError: Cannot set property 'MyApp' of undefined
です。これは、の中にthis
があるためです。私は本当にこれが起こっている理由とそれを修正する方法のアドバイスの両方を理解したいと思っています。
ありがとうございます!
こんにちは、mattsch。これは素晴らしい解決策です。唯一の質問は、ウィジェットがクライアントのウェブサイトに統合されていることを確認する方法です。だからアプリを持ってウィジェットを作ってみましょう。私はいくつかのユーザー(IDまたはホスト名で)が自分のサイトにウィジェットを埋め込んでいることをアプリでチェックします。 –
@To_wave私は 'init'関数の一環として、クライアントの詳細をあなたのサーバに要求することができます - それはうまくいくでしょうか? – mattsch
私はそれについて考えましたが、その解決策ではクライアントが自分のWebサイトからウィジェットを削除したかどうかを確認できません。だからコールバックで私は唯一のチェックは、統合されたウィジェットですが、削除されていない可能性があります –