redux-observableを使用してバイナリイメージを正しく取得するにはどうすればよいですか?

ホンボミャオ

redux-observableを使用して画像を取得しようとしています。

Microsoft Graph APIに基づいて、要求された写真のバイナリデータを返します。

Postmanを使用して画像を取得することに成功しました(バイナリであるため、結果に画像が表示されます)。

私が使用しようとすると、しかし、Reduxの-観察可能な応答私が得たが常にありnull、そしてresponseTypeは、常にではないjsonに関係なく、私が与える何のContent-Typeのようなimage/jpegtext/plainapplication/json

export const getAvatarEpic = (action$, store) =>
  action$
    .ofType(GET_AVATAR)
    .mergeMap(action =>
      ajax
        .get(
          'https://graph.microsoft.com/v1.0/me/photo/$value',
          {
            // 'Content-Type': 'image/jpeg',
            'Authorization': 'Bearer ' + myToken
          }
        )
        .do(res => console.log(res))  // <- the result
        .map(getAvatarSucceed)
        .catch(getAvatarFailed)
    );

これが私が得たものです。多分私は代わりに何か他のものを使うべきajax.getですか?

{
  "originalEvent": {
    "isTrusted": true
  },
  "xhr": {},
  "request": {
    "async": true,
    "crossDomain": false,
    "withCredentials": false,
    "headers": {
      "Authorization": "Bearer hereIsMyToken",
      "X-Requested-With": "XMLHttpRequest"
    },
    "method": "GET",
    "responseType": "json",
    "timeout": 0,
    "url": "https://graph.microsoft.com/v1.0/me/photo/$value"
  },
  "status": 200,
  "responseType": "json",
  "response": null
}
jayphelps

まず、redux-observableとRxJSが別々のものであることを明確にしたいと思います。この質問は実際にはRxJSの質問であり、redux-observableは小さく、ほとんどすべてを慣用的なRxに委ねているため、(redux-observableを使用している場合でも)遭遇するほとんどすべての質問があります。これは重要です。なぜなら、Rxの質問として提示して表現する場合、全体的に大きなコミュニティであるため、はるかに多くのヘルプとリソースが見つかるからです。お役に立てれば!


RxJS v5に組み込まれているajaxユーティリティを使用しているajax()場合は、省略形ではなく、通常のヘルパーを使用する必要がありますajax.get()

次にresponseType: 'arraybuffer'、画像をバイナリデータとして取得するように指定できます。

export const getAvatarEpic = (action$, store) =>
  action$
    .ofType(GET_AVATAR)
    .mergeMap(action =>
      ajax({
        url: 'https://graph.microsoft.com/v1.0/me/photo/$value',
        headers: {
          'Authorization': 'Bearer ' + myToken
        },
        responseType: 'arraybuffer'
      })
      .do(res => console.log(res))  // <- the result
      .map(getAvatarSucceed)
      .catch(getAvatarFailed)
    );

この質問は実際にはredux-observableとは関係がないため、バイナリデータを取得してそれを使用し<img>作成する方法を示す実用的な例を次に示します

https://jsbin.com/mimijot/edit?js,output

import { ajax } from 'rxjs/observable/dom/ajax';

ajax({
  url: 'https://proxy.apisandbox.msdn.microsoft.com/svc?url=https%3A%2F%2Fgraph.microsoft.com%2Fv1.0%2Fme%2Fphoto%2F%24value',
  headers: { 'Authorization': 'Bearer {token:https://graph.microsoft.com/}' },
  responseType: 'arraybuffer'
})
  .subscribe(res => {
    console.log(res);
    const buffer = res.response;
    const blob = new Blob([buffer], { type: 'image/jpeg' });
    const url = URL.createObjectURL(blob);
    const img = document.createElement('img');

    img.src = url;
    document.body.appendChild(img);
  });

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

React onClick イベントを Redux に正しくバインドするにはどうすればよいですか?

分類Dev

Reactでredux-thunkを正しく使用するにはどうすればよいですか?

分類Dev

React with Reduxを使用してプリローダーを作成するにはどうすればよいですか?

分類Dev

reduxでreselectを使用してownPropsを取得するにはどうすればよいですか?

分類Dev

Reduxを使用してコンポーネント内でEnterPressをリダイレクトするにはどうすればよいですか?

分類Dev

React&Redux、ExpressバックエンドアプリでJWTを使用し、redux-persistなどのパッケージを使用せずにユーザーログインを永続化するにはどうすればよいですか?

分類Dev

notistick /(任意のスナックバー)をredux-toolkitで使用して反応するにはどうすればよいですか?

分類Dev

Reduxアプリで状態を正しく返すにはどうすればよいですか?

分類Dev

redux-observableで「of」を使用するにはどうすればよいですか

分類Dev

reduxの状態を正しく更新するにはどうすればよいですか?

分類Dev

react-reduxのuseSelectorフックでカレーセレクター関数を正しく使用するにはどうすればよいですか?

分類Dev

リーフレットv3でreact + reduxを使用してマッププロパティを取得し、イベントを処理するにはどうすればよいですか?

分類Dev

Reduxを使用してコンポーネントの1つのインスタンスのみを更新するにはどうすればよいですか?

分類Dev

ReduxとReactを使用してデータベースから単一のデータ要素を取得するにはどうすればよいですか?

分類Dev

すべてreduxを使用してpromiseのpromiseの正しい順序を保証するにはどうすればよいですか?

分類Dev

カリー化を使用してReactでHoCを作成し、同時にReduxストアに接続するにはどうすればよいですか?

分類Dev

reduxなしでアプリでpjsipを使用するにはどうすればよいですか?

分類Dev

Redux Promiseを使用してコンポーネントへの解決済みのpromiseを取得するにはどうすればよいですか?

分類Dev

redux-observableを使用して簡単な通知システムを実行するにはどうすればよいですか?

分類Dev

redux-observable epicを使用して2つのアクション間の期間を測定するにはどうすればよいですか?

分類Dev

react-reduxを使用してログイン認証を実装するにはどうすればよいですか?

分類Dev

reduxツールキットを使用してredux状態の配列から単一の要素を削除するにはどうすればよいですか?

分類Dev

コンポーネントの状態を保存してreduxストアにサブスクライブするにはどうすればよいですか?

分類Dev

create-react-appを使用してReactアプリケーションを作成した後にReduxをインストールするにはどうすればよいですか?

分類Dev

アクションとaxios.get()(Redux)を使用してローカルjsonファイルからデータを取得するにはどうすればよいですか?

分類Dev

サンクを使用してredux状態に基づいて条件付きでスナックバーを表示するにはどうすればよいですか?

分類Dev

APIがreduxを使用してデータを提供しない場合、25000ミリ秒のタイムアウトを表示するにはどうすればよいですか?

分類Dev

状態をreduxから変更して色を変更するにはどうすればよいですか?

分類Dev

Typescriptを使用してReduxレデューサー関数内に徹底的なswitchステートメントを実装するにはどうすればよいですか?Reduxの内部@@ reduxアクションを処理する方法

Related 関連記事

  1. 1

    React onClick イベントを Redux に正しくバインドするにはどうすればよいですか?

  2. 2

    Reactでredux-thunkを正しく使用するにはどうすればよいですか?

  3. 3

    React with Reduxを使用してプリローダーを作成するにはどうすればよいですか?

  4. 4

    reduxでreselectを使用してownPropsを取得するにはどうすればよいですか?

  5. 5

    Reduxを使用してコンポーネント内でEnterPressをリダイレクトするにはどうすればよいですか?

  6. 6

    React&Redux、ExpressバックエンドアプリでJWTを使用し、redux-persistなどのパッケージを使用せずにユーザーログインを永続化するにはどうすればよいですか?

  7. 7

    notistick /(任意のスナックバー)をredux-toolkitで使用して反応するにはどうすればよいですか?

  8. 8

    Reduxアプリで状態を正しく返すにはどうすればよいですか?

  9. 9

    redux-observableで「of」を使用するにはどうすればよいですか

  10. 10

    reduxの状態を正しく更新するにはどうすればよいですか?

  11. 11

    react-reduxのuseSelectorフックでカレーセレクター関数を正しく使用するにはどうすればよいですか?

  12. 12

    リーフレットv3でreact + reduxを使用してマッププロパティを取得し、イベントを処理するにはどうすればよいですか?

  13. 13

    Reduxを使用してコンポーネントの1つのインスタンスのみを更新するにはどうすればよいですか?

  14. 14

    ReduxとReactを使用してデータベースから単一のデータ要素を取得するにはどうすればよいですか?

  15. 15

    すべてreduxを使用してpromiseのpromiseの正しい順序を保証するにはどうすればよいですか?

  16. 16

    カリー化を使用してReactでHoCを作成し、同時にReduxストアに接続するにはどうすればよいですか?

  17. 17

    reduxなしでアプリでpjsipを使用するにはどうすればよいですか?

  18. 18

    Redux Promiseを使用してコンポーネントへの解決済みのpromiseを取得するにはどうすればよいですか?

  19. 19

    redux-observableを使用して簡単な通知システムを実行するにはどうすればよいですか?

  20. 20

    redux-observable epicを使用して2つのアクション間の期間を測定するにはどうすればよいですか?

  21. 21

    react-reduxを使用してログイン認証を実装するにはどうすればよいですか?

  22. 22

    reduxツールキットを使用してredux状態の配列から単一の要素を削除するにはどうすればよいですか?

  23. 23

    コンポーネントの状態を保存してreduxストアにサブスクライブするにはどうすればよいですか?

  24. 24

    create-react-appを使用してReactアプリケーションを作成した後にReduxをインストールするにはどうすればよいですか?

  25. 25

    アクションとaxios.get()(Redux)を使用してローカルjsonファイルからデータを取得するにはどうすればよいですか?

  26. 26

    サンクを使用してredux状態に基づいて条件付きでスナックバーを表示するにはどうすればよいですか?

  27. 27

    APIがreduxを使用してデータを提供しない場合、25000ミリ秒のタイムアウトを表示するにはどうすればよいですか?

  28. 28

    状態をreduxから変更して色を変更するにはどうすればよいですか?

  29. 29

    Typescriptを使用してReduxレデューサー関数内に徹底的なswitchステートメントを実装するにはどうすればよいですか?Reduxの内部@@ reduxアクションを処理する方法

ホットタグ

アーカイブ