問題タブ [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.

0 投票する
2 に答える
611 参照

javascript - リレーロードにフィルター引数を渡す方法もっと見る

Relayモダンとページネーションコンテナとの接続をフィルタリングしてページネーションしようとしています。これは問題なく動作しますが、フィルタされた接続で loadMore() がトリガーされた場合、フィルタは送信されません。

これは、フィルタ引数を使用して接続を再取得する、React コンポーネントの送信検索フォーム コードです。

コンテナはリロード時にフィルタリングされるため、これは正常に機能します。

今、もっとロードすると

一致するパラメーターはアクティブではなくなり、完全なリストが再び表示されます。

ページネーション コンテナーで、一致する値を含むように getVariables() を設定します。ここでは、console.log(fragmentVariables.matching) に適切な値が含まれています。

ただし、新しい接続はフィルタリングされません。

問題は_loadMore()呼び出し、正確にはrelay.loadMore()にあると思われます

または @connection ディレクティブで、filters キーをサポートする必要があります (filters: [$matchstring] を試してみましたが、うまくいきませんでした)。

どうすればこれを機能させることができますか?時間を割いていただきありがとうございます。

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

javascript - Relay QueryRenderer fragmentContainer は、ID の競合のため、サーバーの応答とは異なる props を渡しました

基本的に、私はこの奇妙な問題を抱えています:

  1. から行われたgraphqlリクエストQueryRenderer
  2. サーバーから返された応答にはデータが含まれています (開発ツールの [ネットワーク] タブから検査)
  3. propsQueryRenderer render({ error, props })関数に取り込まれた
  4. 値をレンダリングpropsする子コンポーネントに渡されるgetcreateFragmentContainer
  5. 1 つのフィールドのレンダリングされた値が応答とは異なる

独自のストアからデータを検索しているときにリレーが何をしているのかわかりませんがid、型の宣言が欠落しているためだと思われます。コード例を次に示します。

App.js

スコアボード.js

マッチ.js

サーバーからのサンプル応答matches:

レンダリングされた値:

したがって、すべてのSTG値が 42 にオーバーライドされますが、そうであってはなりません。

この問題は、応答が配列でidあるタイプにないために発生するのでしょうか? リレーが同じIDMatchを探しているのはそのためですか?Team

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

routing - Relay modern + GraphQL + found-relay - 子がフラグメントを取得する前の変換

Table コンポーネントがフラグメントTable_tableを受け取る単純なルーティングを構築したいと考えています。

ルーティング.js

Table.js コンテナー

しかし、コンポーネントでテーブルプロップを受け取る代わりに、ストアを受け取っています (テーブル プロップは null です)。また、クエリ内の特定のフィールドの代わりに...Table_tabletableを設定すると、"Expected prop to be supply to Relay(Table), but got undefined" というエラーが表示されます。

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

javascript - リレー モダン コードのリレー コンパイル時に変数がスコープ内にないというエラーが発生する

次の単純な Relay Modern コードがあります。

実行する前にコードをリレー コンパイルしようとしていますが、次のエラーが発生します。

ドキュメントに記載されているセクションでcompanyId定義されているため、変数がスコープ内にない理由がわかりません。variablesQueryRenderer

id (例) に固定値を使用すると、node id: "Company:59b2cda12504b914cc398100"コードがリレー コンパイルされ、データを正常に取得できます。ID を動的に選択する必要がある場合に問題が発生します。