We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
components/Map/index.tsxにて
components/Map/index.tsx
let map: Map; let deck: Deck; let visLayers: visiblyLayers;
が関数外で定義されており、関数コンポーネントにも関わらず、状態を持ってしまっています。
結果、状態を持つdeckへのレイヤーリストの参照や登録が各所で行われるようになっており、Menuに所属していないレイヤーの登録が非常に難しい構造になってしまっています。
上記状態をすべて関数内に入れるようにして、関数コンポーネントとして扱いたいです。
Mapコンポーネントのレンダー部分を
<DeckGL initialViewState={<ビュー初期状態>} controller={true} layers={<レイヤーリスト>} > ... </DeckGL>
に変更し、レイヤーリストは関数内からフィルタリングするようにします。 実装イメージ
let layers = menulayers; // メニュー全体のレイヤー layers = filterUnchecked(layers); // チェックされていないレイヤーをフィルタリング layers = filterZoom(layers); // ズームの範囲から外れているレイヤーをフィルタリング
このように扱うことで、もし外部からレイヤーが必要になった際(例えばダッシュボード)は、処理を差し込めばよいだけになります。
layers = mergeDashboard(layers); // ダッシュボードに所属するレイヤーのマージ
let layers = menulayers; // メニュー全体のレイヤー layers = filterUnchecked(layers); // チェックされていないレイヤーをフィルタリング if (config.useDashbord) { // ダッシュボード設定が有効であれば layers = mergeDashboard(layers); // ダッシュボードに所属するレイヤーのマージ } layers = filterZoom(layers); // ズームの範囲から外れているレイヤーをフィルタリング
deckが参照/設定するレイヤーリストを1元化することで、柔軟なレイヤーの取得が可能になると思われます。
Mapコンポーネントをかなり書き換えることになると思います。 私(@gunsow911 )の方で、一旦実証コードを作ってみたいと思います。
The text was updated successfully, but these errors were encountered:
No branches or pull requests
概要
components/Map/index.tsx
にてが関数外で定義されており、関数コンポーネントにも関わらず、状態を持ってしまっています。
結果、状態を持つdeckへのレイヤーリストの参照や登録が各所で行われるようになっており、Menuに所属していないレイヤーの登録が非常に難しい構造になってしまっています。
目的
上記状態をすべて関数内に入れるようにして、関数コンポーネントとして扱いたいです。
提案内容
Mapコンポーネントのレンダー部分を
に変更し、レイヤーリストは関数内からフィルタリングするようにします。
実装イメージ
このように扱うことで、もし外部からレイヤーが必要になった際(例えばダッシュボード)は、処理を差し込めばよいだけになります。
deckが参照/設定するレイヤーリストを1元化することで、柔軟なレイヤーの取得が可能になると思われます。
Mapコンポーネントをかなり書き換えることになると思います。
私(@gunsow911 )の方で、一旦実証コードを作ってみたいと思います。
The text was updated successfully, but these errors were encountered: