2016-05-17 16 views
2

小さなスクリプトをReactに移植しています。国のドロップダウンと地域のドロップダウンを結びつけるシンプルなcountry-region-selectorプラグインなので、後者は常に選択した国の関連地域を表示します。参照してください:https://github.com/benkeen/country-region-selector反応コンポーネントの設計

私は非常にReactを使用してこれをコンポーネント化するための最良の方法を見積もることはできません。 2つの主要な要素(国のドロップダウンと地域のドロップダウン)が完全に独立している必要があるため、ユーザーは2つのドロップダウンがDOM +周囲のマークアップのどこに表示されるかを正確に選択できます。しかし、私はすべての内部の働き(すなわち、2つのコンポーネントがどのように結びついているか)を見えないようにしたい。私はおそらくこのようなものを考えていた...

<CountryRegions> 
    <span>arbitrary markup here</span> 
    <CountryDropdown /> 
    <p> 
     <RegionDropdown /> 
    </p> 
</CountryRegions> 

...しかし、私は実際の実装がうまくいくかどうかはわかりません。任意のアイデア/より良い提案?この質問がはっきりしていることを期待してください。

+0

あなたは、あなたの国のセレクタがHTML内に存在する2つのReactコンポーネント(つまり、2つの 'ReactDOM.render()'呼び出し)、またはアプリケーション全体がReactで、コンポーネントをどこにでも存在させたいアプリ? – Aaron

+0

私はかなりフォローしています...基本的に私はユーザーが2つのドロップダウンを一緒に配線する必要はありません。例えば国のドロップダウンの選択状態を維持し、その値をリージョンドロップダウンに渡します。代わりに、ユーザが単一のコンポーネントをインクルードできるようにしたいと思います。必要なマークアップに2つのドロップダウンが含まれています。それは、コンポーネントが本当にReactアプリケーションに「ドロップイン」するのを簡単にします。 –

+0

同じReactアプリケーションにコンポーネントが存在するように聞こえるので、React要素を別のHTMLコンテナ内の伝統的なHTMLページに混ぜてほしいと言っているのかどうかは分かりませんでした。 – Aaron

答えて

2

の間で何かcontextを使用して共有することができます。基本的にCountryRegionsコンポーネントは、すべての子が使用できるコンテキストを提供します。

CountryDropdownRegionDropdown関係なく、深くネストされたか、限り、彼らはCountryRegionsコンポーネントの子ですとして提供されるコンテキストを使用することはできません。

+0

優秀、感謝nvartolomei。ええ、それは法案に合うように見える! –

関連する問題