問題タブ [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.
reactjs - ReactJs reselect は毎回すべてのセレクターを再計算します
さまざまなタイプのブログ投稿を保持するレデューサーがあります。select を使用して必要なデータの一部を取得していますが、状態が変わるたびに reselect がすべてのセレクターを再計算します。
私のコンポーネントでは、ブログ投稿を表示しているときに、設定したアクションをディスパッチしますfilter.selectedBlog = post.id
問題は、フィルターが変更されると、新しいコピーを返すときに状態の Posts ブランチ全体も変更されることです。したがって、私が作成するセレクターは、フィルターが変更されるたびにすべてを再計算することになります。
フィルタリング状態セレクターを作成するための標準的な方法は何ですか?
asynchronous - 非同期アクションで react-redux アプリケーションで「reselect」を使用する
reselect と共に非同期 redux ライブラリを使用している場合、「選択」されている状態オブジェクトが非同期アクションの完了に依存する場合に mapStateToProps で選択を実行するための決定的なパターンはありますか?
次のソリューションを使用していますが、エレガントではないようです...
reselect
状態を移入する非同期アクションに依存する状態のライブラリで「選択」を実行するにはどうすればよいですか?
redux - Redux および Reselect とキャッシュされたデータの保存
したがって、私が理解しているように、再選択は、異なる状態ツリー部分間の派生状態、または異なるレデューサーからの派生状態に適しています。しかし、次のようなものがある場合はどうなりますか:
など..基本的に、私は状態データなどの構成を導出していませんが、以前に「要求された呼び出し」を提供することにより、繰り返しアクション/リデューサー呼び出しを「制限」したいと考えています。それで、Reselectはこれに適していますか?もしそうなら、一般的な例。私が見た例は、派生状態を計算します。解決策として、以前に要求されたデータがある場合はそれを返すメモ化/キャッシュ関数でアクションを装飾することを考えていました。つまり..
reactjs - immutable.js のネストされた Immutable を更新しました
ツリー全体を変更せずに、ネストされた不変の Map アイテムを更新するにはどうすればよいですか?
例 :
tree.branch2.1.value を更新するにはどうすればよいですか?
これにより、branch1 が新しいコピーを取得しますか?
これを Reactjs Redux アプリで使用しています。私もセレクターを使用しているbranch2
ので、ブランチ1も変更せずに値を変更して、セレクターが再計算されないようにしたい
reactjs - Reselect (react select) が不思議なことに指定されたフィールドを与えない
反応サイトがあり、特定のページで、次の方法でデータを選択しています。
コンソールでは、「state.photos.photos」を出力しています。
別のセレクターでは、以前に定義したものを次のように使用しています。
ただし、奇妙なことに、このセレクターを mapStateToProps で使用すると、データが取り込まれません。
不思議なことに、2 つのコメントを削除すると、次のようになります。
//const photoIds = ideabookPhotos[ideabookId]
//const photos = photoIds && photoIds.map(photoId => state.photos.photos[photoId]).filter(x => x!=undefined)
セレクターからではなく、mapStateToProps で直接読み取ることで写真を置き換えます。正常に動作します。
何か不足していますか?彼らはまったく同じようです
javascript - セレクターを使用してネストされた結果を組み合わせる
reselect を使用してストアからデータを取得しています。私はリストを管理してDivisions
おりTeams
、各ディビジョンにはチームのリストがあります。また、アクティブなディビジョンの記録を保持し、それらを配列に保持しますactiveIds
。
基本的に私はこのツリー構造を持っています:
getActiveDivisions
配列を反復処理し、activeIds
それを分割データで水和するセレクターがあり、結果は次のとおりです。
getActiveDivisionsWithTeams
ここで、基本的にツリーと同じ構造を取得するセレクターを作成したいと思いましたが、activeDivisions
チームは水和されています。たとえば、次のようになります。
それとも、水分補給されたチームがあるディビジョン用に別のリストを保持する必要がありますか?
または、このシナリオにアプローチする最善の方法は何でしょうか?
reactjs - redux でのスマート/ダム コンポーネントでのセレクターの使用
次のような Forecast という最もスマートなコンポーネントがあるとします。
次のように Forecast コンポーネントをラップします。
ここでは、2 つのセレクターを props としてWeather
コンポーネントに渡しています。セレクターは次のようになります。
これらのセレクターを props として渡す必要はありません。天気コンポーネントで簡単に参照できますが、天気コンポーネントもダムであり、そうしないため、天気コンポーネントでこれらのセレクターをどのように使用するかについて混乱しています状態への参照があります。子コンポーネントが呼び出したり、小道具を受け取ったりする上部に、コンテナまたはスマートコンポーネントが1つだけ必要です。
これを機能させる唯一の方法は、WeatherContainer
次のような中間コンポーネントを使用することです。
そして、私は次のように呼び出します:
このようなコンテナ コンポーネントを作成しなければならないというのは、まったく間違っているように思えます。
ダムコンポーネントでセレクターを使用するにはどうすればよいですか?または、状態への参照も必要であることを念頭に置いて、セレクターを小道具として渡すにはどうすればよいですか?