問題タブ [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.
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
親コンテナーから子コンテナーに変数を渡すには、どの構文が適切でしょうか?
reactjs - Relay + React のテスト戦略
最近、React + Relay + Graphql を試しています。残念ながら、リレー コンテナーでラップされた React コンポーネントをテストする簡単で便利な方法が見つかりません。
基本的には、TDDに沿ってこれらの目標を達成したいと考えています。
- コンテナをレンダリングしてその内容をテストします。
- 変数を変更し、コンテンツでその変更をテストします。
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 _ _
解決策を共有できれば、本当に感謝しています。
ありがとう!
react-router - react-router-relay でルートクエリに値を渡す方法
react-router-relay プロジェクトを使用したリレーに次のルート クエリがあるとします。
の初期値は$number
非表示の入力のようにサーバーから取得され、サーバーへの最初のクエリでこの数値を使用したいと考えています。$number
現在の react-router-relay API を使用してクエリに渡すにはどうすればよいですか? これはqueryParam
またはではありませんstateParam
。
relayjs - リレー リクエストで Cookie ヘッダー フィールドを送信する
ストック リレー ネットワーク層は、彼のリクエストで Cookie ヘッダー フィールドを送信していないようです。そこで、次のように Cookie フィールドを追加して追加しようとしました。
しかし、それでも私の投稿リクエストには Cookie フィールドがありません。「Cookie」を「Set-Cookie」に置き換えると、投稿リクエストに含まれます...
サーバーで Cookie を使用する必要があります 助けてください! :)
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 サーバーなど)。
アドバイスありがとうございます。
relayjs - Relay を使用した一時的なユーザー通知のパターン
(私の制御外の理由により) いくつかの突然変異があり、結果がデータ層ですぐに明らかにならないため、操作を実行した後にグラフから読み取ることができません。操作が成功したことを示す通知/アラートをユーザーに表示し、ミューテーション中に生成された情報をユーザーに提供できるようにしたいと考えています (この場合、それは 3rd-パーティ API)。この例以外にも、さまざまな種類 (成功、情報、警告、エラー) の通知をユーザーに表示したい場合があると思います。
ミューテーション レスポンスには、要求された情報のみが出力フィールドに含まれているため、私にとって明らかな戦略はTransientNotification
、出力でも返される型を持つことです。しかし、データが実際にはどこにも保存されないため、GraphQL スキーマでそれを行うのは奇妙に感じます。
だから私はこれにアプローチするための最良の方法のアイデアを探しています. これはかなり一般的な UI パターンであり、現在、それを機能させるために多くの困難を乗り越えなければならないように感じています。