問題タブ [relayjs]

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 に答える
4514 参照

react-router - Relayコンテナ間で変数を受け渡す方法

親コンテナーから子コンテナーに変数を渡すための適切な構文を探しています。

/グローバルウィジェットリストがオンで、特定のウィジェットリストがオンのこれらのルートがあるとしましょう/widgets/:WidgetListID

注:react-router-relayを使用しています

これは同じコンポーネントで、内部<WidgetList/>でレンダリングされます。変数を渡す方法は次のとおりです。<WidgetListContainer/><Layout/>WidgetListID

Layout.js

WidgetListContainer.js

WidgetList.js

変数を WidgetList リレー コンテナー内に直接設定しても問題ありません。問題なくWidgetListID動作しますが、WidgetListContainer リレー コンテナーから変数を渡そうとするとすぐに、空のデータ オブジェクトが作成されます{__dataID__: "VXNlcjo="}。ただし、変数は getWidget() 関数で適切に出力されます。それで、ある時点で何かがうまくいかないのですが、何がわかりませんか?

WidgetListID親コンテナーから子コンテナーに変数を渡すには、どの構文が適切でしょうか?

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 に答える
692 参照

react-router - react-router-relay でルートクエリに値を渡す方法

react-router-relay プロジェクトを使用したリレーに次のルート クエリがあるとします。

の初期値は$number非表示の入力のようにサーバーから取得され、サーバーへの最初のクエリでこの数値を使用したいと考えています。$number現在の react-router-relay API を使用してクエリに渡すにはどうすればよいですか? これはqueryParamまたはではありませんstateParam

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

relayjs - リレー リクエストで Cookie ヘッダー フィールドを送信する

ストック リレー ネットワーク層は、彼のリクエストで Cookie ヘッダー フィールドを送信していないようです。そこで、次のように Cookie フィールドを追加して追加しようとしました。

しかし、それでも私の投稿リクエストには Cookie フィールドがありません。「Cookie」を「Set-Cookie」に置き換えると、投稿リクエストに含まれます...

サーバーで Cookie を使用する必要があります 助けてください! :)

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 サーバーなど)。

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

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

relayjs - Relay を使用した一時的なユーザー通知のパターン

(私の制御外の理由により) いくつかの突然変異があり、結果がデータ層ですぐに明らかにならないため、操作を実行した後にグラフから読み取ることができません。操作が成功したことを示す通知/アラートをユーザーに表示し、ミューテーション中に生成された情報をユーザーに提供できるようにしたいと考えています (この場合、それは 3rd-パーティ API)。この例以外にも、さまざまな種類 (成功、情報、警告、エラー) の通知をユーザーに表示したい場合があると思います。

ミューテーション レスポンスには、要求された情報のみが出力フィールドに含まれているため、私にとって明らかな戦略はTransientNotification、出力でも返される型を持つことです。しかし、データが実際にはどこにも保存されないため、GraphQL スキーマでそれを行うのは奇妙に感じます。

だから私はこれにアプローチするための最良の方法のアイデアを探しています. これはかなり一般的な UI パターンであり、現在、それを機能させるために多くの困難を乗り越えなければならないように感じています。