問題タブ [react-relay]
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.
graphql - リレー/graphqlミューテーションのprogressイベントのサブスクライブ方法
ミューテーションを使用してファイルをアップロードしたいのですが、ミューテーションの進行状況を追跡する方法が見つかりません (そのアップロード、XMLHttpRequest 進行状況イベントと同様)。Afaik リレーはフェッチを使用していますが、フェッチは進行状況を追跡する方法を提供しません ( https://github.com/whatwg/fetch/issues/21 )。
それで、最善の解決策は何ですか?XMLHttpRequest を使用するカスタム ネットワーク層を作成しますか? しかし、もう一度、リクエストオブジェクトへの参照を呼び出し元に戻す方法はStore.commitUpdate
...?
reactjs - 外部ストアからリレー クエリ フラグメントの変数を取得する
の一部として GraphQL クエリ フラグメントを作成するときRelayContainer
、特定の状況でクエリ変数を設定する方法に苦労しました。ドキュメントで概説されている基本は十分に単純です。しかし、これらのクエリの静的な性質と、aRelayContainer
が高次の React コンポーネントであることを考えると、クエリに必要な入力が Redux ストアなどの外部ソースからのオブジェクトである場合、これを処理する最善の方法がわかりません。コンポーネントが読み込まれる前にそのストアからデータを取得する方法がないため、回避策として、@include
ディレクティブを使用し、コンポーネントの読み込み後に ready 変数を true に設定しています。
結局、これは期待どおりに機能しますが、これはハックのようなものであり、Relay がクエリ変数を処理する方法に関して重要な何かが欠けているのではないかと心配しています。これを行うより良い方法はありますか?prepareVariablesは役に立つように見えましたが、それでもデータ ストアにアクセスできませんでした。これが私の明らかなオプションです:
- そのままにしておく
- コンポーネントのライフサイクル メソッドで実行されるミューテーションに変換します。コンポーネントへのデータバインディングが削除されるため、これは行いたくありません。
- カスタム
RelayNetworkLayer
(ストアにアクセスできる) を使用して、クエリをインターセプトし、外部ストアから変数を設定します。これもハックのように感じます。
react-native - ファイルで Relay ミューテーションを使用する際の問題
Relay での File Mutation の使用に問題があります。getFiles() を使用してミューテーションを作成しようとしています
}
transaction TypeError: Network request failed
at XMLHttpRequest.xhr.onerror (D:\ReactNative\MedexApp\node_modules\react-native\node_modules\whatwg-fetch\fetch.js:436)
他のすべてのリクエストは正常に機能していますが、常にエラーが発生します
。また、ファイルを添付せずに同じミューテーションが正しく送信されます。これはファイルの配列であり、["1489322712989.jpg":{filename:"1489322712989.jpg"
uri:"file:///storage/emulated/0/Pictures/1489322712989.jpg"}]
フィドラーを介してリクエストを送信したり、Web サービスでキャッチしたりすることはありません
reactjs - React リレー ディスク キャッシュ
私は、反応リレーライブラリを使用するGraphQL APIを使用してネイティブアプリケーションを反応させました。そして、アプリケーションにディスク キャッシュを実装する必要があります。要求は既に実行時にキャッシュされていることがわかりますが、アプリケーションをリロードした後、要求はサーバーからデータを再度リロードしますが、キャッシュから取得する必要があります。