問題タブ [graphql]

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 投票する
1 に答える
2036 参照

node.js - GraphQL を使用してデータベースから限定レコード (ページネーション) を取得する方法

最近、GraphQL を使い始めました。データベースからすべてのレコードを取得できますが、取得できるレコードは限られています (一度に 10 件など)。これを達成するために私を導いてください。ありがとう

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

reactjs - GraphQL での双方向フェッチ

次の GraphQL スキーマがあります。

基本的に、すべてのユーザーはタスクのリストを持つことができます。この問題は、次のような応答を得るためにすべてのタスクのリストをフェッチする必要があるときに発生します。

そのようなフェッチを許可するには、スキーマをどのように編集すればよいですか?

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

mongodb - GraphQL でカスタム メッセージを出力する方法

こんにちは、es6 の組み合わせで GraphQl を使用しています。Graphql から特定のレコードを削除しているときに、削除されたレコードの詳細 (値) を取得しています。「レコードが削除されました」などのカスタム メッセージを出力したいと考えています。それに応じて私を助けてください。

ここに私のgraphQLコードがあります:

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

reactjs - ファット クエリとツリー構造について

Relay のファット クエリの概念を理解するのにまだ苦労しています。特に、どのデータを再フェッチするかを決定する交差ロジックの部分についてです。

これまで、UserTypeルート クエリ ( という名前)viewerを使用して単純な階層データ構造を構築してきました。この各プロジェクトには、任意にネストされたサブプロジェクト階層をモデル化する別のフィールド (タイプも) があります。projectsProjectConnectionTypeprojectsProjectConnectionType

また、2 つの高次の React コンポーネントがProjectListあり、条件付きでフラグメントを展開することによって (リスト アイテム コンポーネント内でProjectListItemRelay 変数を使用することによって)、この構造をレンダリングします。expanded

これまでのところ、これはうまく機能しており、非常に満足しています。トリッキーな部分は、AddProject突然変異です。名前とparentProjectId入力として (ルート プロジェクトの場合は null の可能性があります) を受け取り、サーバー側の適切な場所に新しいノードを作成するミューテーションを作成しました。その後、新しいもの (後でprojectEdges使用して追加されます) とorを返す必要があるため、そこでも更新できます。RANGE_ADDparentProjectviewersubprojectCount

ビューア (一意のグローバル ルート クエリ ポイント) の場合、すべて正常に動作します。Relayは交差点を正しく計算し、サーバーから新しいデータを要求します。しかし、サブプロジェクトを追加しようとすると、(ミューテーション ID 以外に) 出力フィールドのない完全に空の応答が返されます。私の推測では、Relay はparentProjectフィールドを適切にマッピングする方法を知らないために交差点を間違えているようです。私はすでにそのための構成を追加しようとしましたが、ファットFIELDS_CHANGEクエリparentProject: node(id: "$parentProjectId")内でクエリを実行しようとしました(どちらも機能していませんでした)。

私は何が欠けていますか?ドキュメントを数回読んだことがありますが、まだミューテーションの概念を理解しておらず、すでにかなりばかげていると感じています。

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

reactjs - Relay + React のテスト戦略

最近、React + Relay + Graphql を試しています。残念ながら、リレー コンテナーでラップされた React コンポーネントをテストする簡単で便利な方法が見つかりません。

基本的には、TDDに沿ってこれらの目標を達成したいと考えています。

  1. コンテナをレンダリングしてその内容をテストします。
  2. 変数を変更し、コンテンツでその変更をテストします。

React + Flux と比較すると、React + Relay はブラック ボックス、つまり宣言型に似ています。

Relay.createContainer をモックして Relay をバイパスし、単に React コンポーネントをテストするだけの人がいます。リレー部分が覆われておらず、テストによってこの部分 を駆動する方法はありません。https://github.com/facebook/relay/issues/161

また、Relay のテスト ケースを読み、モック コンテナーをレンダリングするのは非常に面倒です。 https://github.com/facebook/relay/blob/master/src/tools/mocks/RelayTestUtils.js _ _

解決策を共有できれば、本当に感謝しています。

ありがとう!

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

reactjs - クライアント側でのみ JS を中継する

laravelを使用してgraphqlサーバーを開発しました(https://github.com/Folkloreatelier/laravel-graphql)。Relayを使用してReactアプリケーションを作成したいと思います。最初のコンポーネントを作成すると、「Uncaught Error: Invariant Violation: RelayQL: Unexpected invocation at runtime.」というエラーが表示されます。Babel 変換が設定されていないか、この呼び出しサイトを識別できませんでした。として逐語的に使用されていることを確認してくださいRelay.QL

私はまだエラーをグーグルで検索し、Babel Relay Plugin をインストールする必要があることを認識しました。しかし、このプラグインを含めるには、スキーマを指定する必要があります。しかし、私はまだサーバー側でこのスキーマを指定しています。なぜクライアント側でもこれが必要なのですか? サーバーがまだ実装されている場合にこれを実装する方法の例はありますか (外部サーバー、NodeJS サーバーなど)。

アドバイスありがとうございます。