状況 - Reactとuser \ 3rdパーティの組み込みコンポーネント(ウィジェット)を利用するapplication \ frameworkを作成したいと思います。私の現在の見解では、ロードされたサードパーティのコンポーネントをリストするルートコンポーネントがあるでしょう。React.jsに動的にコンポーネントをロードする
class Root {
constructor(p){
this.state = {loadedWidgets: [<Chat/>, <Mail/>, <Notes/>]}
}
render(){
return(
<div>
<Header/>
<Body>
{this.state.loadedWidgets.map(WidgetName => <WidgetName />)}
</Body>
</div>
)
}
}
しかし、私は、私は理解したり、解決する方法を見つけることができない2つの大きな問題が発生しました::私はハードコードいけない場合、私は(インポート)それらのウィジェットをロードする方法を
- をそうと同様にそれらをルートコンポーネントに変換しますか?
(コードのリストエンド:リアクトは道本当のコンポーネントをレンダリングしないのはなぜ
render(){
const NameOfACustomComponent = this.state.loadedWidgets[0]
return(<div><NameOfACustomComponent/></div>
}
レンダリング後、カスタムDOMタグであり、既存のリアクションコンポーネントではありません。
ビルドしたいのは、新しいページを小さなウィジェット\ appsで置き換えるクロムの拡張機能です。ユーザーが頻繁に使用すると同時に、開発者は純粋なReact.jsで簡単に新しいウィジェットを追加することができます統合のためのいくつかのフック。
EDIT。 this issueによる2番目の質問に対する答えが見つかりました。クラスまたは関数への参照がある場合、リアクションで任意のコンポーネントを作成できます(ES5リアクションスタイル)。したがって、2つの問題と1つの問題の解決策の1つは、ウィンドウオブジェクト内にいくつかのレジストリを持たせて、コンポーネントを追加してフレームワークが利用できるようにすることです。ただし、厳密なClassインスタンスの方法で行う必要がありますが、ウィジェット自体を削除するだけではなく、それらのリスト全体を削除するメソッドを追加する必要があります。あなたはほとんどそこにいる
サードパーティコンポーネントはReactで構成されていますか? –