問題タブ [relaymodern]
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 - Relay Modern refetch が新しいデータを渡さない
私は Relay Modern にまったく慣れていないので、ここで何か間違ったことをしている可能性があります。また、これをどのように行うべきかについてのドキュメントを見つけるのに苦労しています。
次の構造を持つ React に組み込まれた仮想ディレクトリ構造ビューを表示するアプリがあります。
ビューが読み込まれると、 で指定された GraphQL クエリQueryRenderer
が実行され、データがコンポーネントに渡され、ProjectDriveContainer
正しくレンダリングされます。このコンポーネントは次のように作成されます。
ディレクトリを変更するメソッドは、さまざまな変数を使用して再フェッチを実行します。ブラウザのネットワーク タブで、このクエリが実行され、正しいデータが返されるのを確認できます。メソッドは新しい props を受け取りますcomponentWillReceiveProps
が、これらは古い元の props です。つまり、新しいデータは props 内のオブジェクトを置き換えていません。
私のクエリは次のようになります。
元のクエリ
再取得クエリ:
ここで何が欠けていますか?
reactjs - createRefetchContainer を使用して変数を更新する方法は?
React RelaycreatePaginationContainer
はオフセットベースのページネーションをサポートしていないため、次善の策は、createRefetchContainer
.
Relay Modern のドキュメントhttps://facebook.github.io/relay/docs/refetch-container.htmlで提供されている例では、実装されると 1 回だけ前方にページ分割されますが、これは、デフォルトの状態からのオフセットで遷移しているためです。 0 を 0 + 10 の新しい状態にします。値が保存されていないため、後続のクリック イベントは同じ結果を生成します。
オフセット値が増加し続けると予想していましたが、再取得のたびに状態が維持されているようには見えません。
これに対処したと思われるリポジトリでこの問題に遭遇しましたhttps://github.com/facebook/relay/issues/1695。この場合、ドキュメントは更新されていません。
reactjs - カスタム props を QueryRenderer レンダリング関数に渡す方法は?
次の QueryRenderer コンポーネントがあるとします。
私が抱えている問題はrenderProjectList
、自分のselectedProject
小道具が値を変更したときに再度実行されないことです。メソッドはrender
明らかにトリガーされますが、いずれの小道具もQueryRenderer
変更されrenderProjectList
ていないため、どちらも呼び出されません。
これを処理するための最良のアプローチは何ですか?