フレームワークを学ぶ方法としてReactJSでゲームプロジェクトを開始しましたが、私は問題を抱えています。複雑な階層のリアクションイベントハンドリング
私はreact-hexgrid
を中心コンポーネントとして使用しています。これは、六角形に基づいています。私は6つの<HexTile/>
を2つの<Hexagon/>
とそれぞれ<GameLayout/>
のボードで構成しています。ここでは&をドラッグできます。 <HexTile/>
が<GameLayout/>
上に完全に配置されなければならない、私は、これはそれが最初のヘクスがドロップだ示すfirst
変数と<Hexagon/>
たびにドロップ達成します。問題は、移動が完了している間に残りのブロック<HexTile/>
をブロックする必要があることです。私は<HexTile/>
を<TileList/>
の中に入れたいですが、ドラッグイベントリスナーが<Hexagon/>
コンポーネントにバインドされているので、<TileList/>
に移動が行われていることを伝える方法がわかりませんので、他の<HexTile/>
が無効になります。
<TileList/>
は、<HexTile/>
のイベントを受け入れすることができますか? <HexTile/>
がここ<TilesLayout/>
コンポーネントに基づいています(ゲーム自体はベースとしてこの例を取る):https://github.com/Hellenic/react-hexgrid/tree/master/examples/drag-and-drop
で小道具や状態で解決するのが簡単ではない状況になったらすぐにRedux(react-redux)を使用してイベントを処理します。次に、イベントを処理するときに、コンポーネント階層についてもう考える必要はありません。アプリケーションが複雑になればなるほど、Reduxを使用する方が多くなります。 – JulienD
ドラッグイベントを待ち受ける 'TileList'に状態を追加できますか? 'isTileMoving'のようなもので、その状態を設定するハンドラを渡します – BravoZulu