問題タブ [reselect]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
14306 参照

typescript - TypeScriptでreduxアプリでセレクターを使用するには?

selectorsRedux アプリでライブラリの再選択から使用しようとしています。

私のセレクターファイルは次のようになります。

そして、次のように自分のコンポーネントで使用しようとします:

これをすべてコンパイルしようとすると、次のエラーが発生しました。

ここに画像の説明を入力

私は小道具の型を宣言する方法でそれを推測しています。これは現在次のようになっています:

この問題を解決してください。前もって感謝します。

0 投票する
1 に答える
575 参照

javascript - 単一の状態スライスの変更で実行されているNgrxすべての再選択セレクター

コンポーネントでは、次の2つのセレクターを実行しました

App.ActionTypes.ADD_VALUE問題は、更新のみのためにアクションが呼び出されるたびに、 ( for ) と( for )valuesの両方のセレクターが呼び出されることです。(デバッグポイントを入れると、両方に到達します)。getSearchValuesvaluesgetSearchNumbersnumbers//<<DEBUG 1>>//<<DEBUG 2>>

すべてのセレクターではなく、変更されたスライスに関連するセレクターのみを実行することはできますか?

0 投票する
0 に答える
151 参照

reactjs - redux状態の変化を連鎖させる慣用的な方法は?

私はこれに対処するための慣用的な方法を見つけようとしています:

「適用されたフィルター」のリストと「レコード」のリストを含むリデューサーがあります。フィルターまたはレコードを変更すると、「フィルター処理されたレコード」のリストも変更されるはずですが、レコードの長いリストになる可能性があるものにフィルターを適用すると、処理が遅くなる可能性があります。

現在、「フィルターの追加」または「フィルターの削除」アクションをディスパッチして、「適用されたフィルター」のリストを変更しています。これにより、「フィルター処理されたレコード」のリストが再計算されます (現在はレデューサーで行われています)。

2 つのコンテナー コンポーネントを使用しています。1 つは「フィルター チップ」のリストを表示するため、もう 1 つは「フィルター処理されたレコード」のリストを表示するためです。

フィルタの適用には時間がかかり、フィルタが変更されるたびに行われるため、UI からフィルタを削除するプロセスが遅いように見えます。その作業には、フィルターのリストの更新と新しいフィルターのリストの適用が含まれます。

私がむしろ持っているのは:

  1. フィルターを削除すると、できるだけ早く UI から消えます。(つまり、状態変更は、削除されたフィルターを含むだけでブロードキャストされます)
  2. 同時に、フィルターを適用するプロセスをバックグラウンドで実行し、それが完了したら、別のアクションをディスパッチして、フィルター処理されたレコードのリストを変更したいと考えています。
  3. フィルターが適用され、フィルター処理されたレコードを更新するアクションが実行された後、「フィルター処理されたレコード リスト」コンポーネントを更新します。

したがって、基本的には、状態の変更によって別の状態の変更がトリガーされる可能性がありますが、これら 2 つの状態の変更の間に中間の状態をブロードキャストしたいと考えています。

かさばるロジックをレデューサーからアクションに取り込まなければならないことはわかっていますが、そのロジックを適用する方法/場所に苦労しています。脳をその軸に巻き付けてしまい、物事を複雑にしすぎているというしつこい気持ちがありますが、単純で正しい方法に戻ることはできないようです.

どんな助けでも大歓迎です!


私が追加したコメントから編集しますが、ここでもインラインに保ちたいと思いました:

私は最初の質問で間違って話しました。ここでかなり大きな修正を行いました --

レデューサーで「フィルター処理されたレコード リスト」を実際に計算しているわけではありません。「RecordList」コンテナーに、「レコード」と「フィルター」を取り、フィルター処理されたレコードのリストを返す再選択セレクターがあります。

これは、「RecordList」レンダーが「FilterList」レンダーを保持していることが原因であると考えているため、コンポーネント階層を上って、そこで何か修正できるかどうかを確認します。

ただし、私はまだ提案をお待ちしています!