LoginSignup
0
0

More than 5 years have passed since last update.

redux-offlineのexamplesの使い方

Posted at

redux-offline/redux-offline: Build Offline-First Apps for Web and React Native

APIサーバー側

以下を実行でポート4000でAPIサーバーが起動する

cd examples/web
npm i
npm start

クライアント側

以下を実行でポート3000でクライアントが起動する

cd examples/web/client
npm i
npm start

APIサーバーの挙動

/succeed-always

常にstatus(200)を返す。

/succeed-sometimes

50%の確率でstatus(500)とstatus(200)を返す

/fail-sometimes

50%の確率でstatus(500)とstatus(400)を返す

クライアントの挙動

以下のようなあっさりしたクライアントが起動します。
BasicとPromiseを使うバージョに分岐する画面です。
image

Basic

機能ボタンが3と戻るボタン(home)
image

  • Succeed Always
  • Succeed Sometimes
  • Fail Sometimes

Succeed Always

成功を返すAPIを呼ぶ(status:200を常に返す)
成功:status: 200

Succeed Sometimes

時々成功するAPIを呼ぶ。status:200が応答あるまでリトライ続ける
成功:status: 200
失敗:status: 500 (internal server error)

Succeed Always

失敗の種類変えるAPIを呼ぶ。status:400が応答あるまでリトライ続ける
失敗A:status: 500 (internal server error)
失敗B:status: 400 (bad request)

クライアント画面 React構成

<SyncStatus

現在進行している状況を表示する

busyの場合(Request投げ中)には、
Waiting on request - Attempt #{attempt}

次回のRequestまで待機中の場合には、
Waiting on retry: {timer}s - Attempt #{attempt}

何もしてない時にはSyncedを表示

Attemptは試行回数
表示はRedux

<RequestsQueue

<MakeRequests

設定

import defaultConfig from '@redux-offline/redux-offline/lib/defaults';

カスタム

const config = {
...defaultConfig,
retry(_action, retries) {
return (retries + 1) * 1000;
},
returnPromises: true
};

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0