非同期リクエスト後の条件の処理方法

user6080689

事前に私の質問を読んでくれてありがとう。私はdvaAntDesign Mobile ofReact使用して電話登録機能を処理しています。

確認コードを送信する前に、電話が登録されているかどうかを判断します。はいの場合、「この電話は登録されています」と乾杯します。

これで、戻り値は正しくなりました。

const mapStateToProps = (state) => {
  console.log(state.register.message)
}
// {code: 221, message: "This phone has been registered"}

だから私はそれを次のように書きます:

const mapStateToProps = (state) => ({
  returnData: state.register.message
})

そして、ボタンをクリックすると、アクションがディスパッチされます(リクエストが送信されます)。

  getVerifyCode() {
    const { form, returnData } = this.props;
    const { getFieldsValue } = form;
    const values = getFieldsValue();
    this.props.dispatcher.register.send({
        phone: values.phone,
        purpose: 'register',
      })
      // if(returnData.code === 221){
      //   Toast.fail("This phone has been registered", 1);
      // } else {
      //   Toast.success("Send verify code successfully", 1);
      // }
  }

しかし、戻り値に応じてif ... else条件を追加しようとしたとき

   if(returnData.code === 221){
     Toast.fail("This phone has been registered", 1);
   } else {
     Toast.success("Send verify code successfully", 1);
   }

エラーを取得するためだけに:

Uncaught(in promise)TypeError:Undefinedのプロパティ 'code'を読み取れません

aynchromousの問題だと思い、asyncawaitを使おうとしました。

  async getVerifyCode() {
    ...
    await this.props.dispatcher.register.send({
        phone: values.phone,
        purpose: 'register',
      })
  }

しかし、同じエラーが発生します

未定義のプロパティ「コード」を読み取れません

なぜ、どのようにこの問題を解決するのだろうか?

追加:これはモデルです

import * as regiserService from '../services/register';

export default {
  namespace: 'register',
  state: {},
  subscriptions: {
  },
  reducers: {
    save(state, { payload: { data: message, code } }) {
      return { ...state, message, code };
    },
  },
  effects: {
    *send({ payload }, { call, put }) {
      const { data } = yield call(regiserService.sendAuthCode, { ...payload });
      const message = data.message;
      yield put({ type: 'save', payload: { data },});
    },
  },
};
user6080689

モデルのハンドル条件が問題を解決しました:

*send({ payload }, { call, put }) {
  const { data } = yield call(regiserService.sendAuthCode, { ...payload });
  if(data.code === 221){
    Toast.fail("This phone has been registered", 1);
  } else {
    Toast.success("Send verify code successfully", 1);
  }
    yield put({ type: 'save', payload: { data }});
  }

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

Java webappでのリクエストの非同期処理

分類Dev

Javaでの複数の非同期リクエスト処理

分類Dev

Javaでの複数の非同期リクエスト処理

分類Dev

非同期のHTTPリクエスト処理

分類Dev

PythonDjango非同期リクエストの処理

分類Dev

非同期処理のリクエストが機能しない

分類Dev

Node.jsPOSTリクエスト応答の非同期処理

分類Dev

Swiftで非同期httpリクエストを処理する方法

分類Dev

非同期処理のためにGuzzleHTTPリクエストオブジェクトに認証を追加する方法

分類Dev

非同期処理のリクエストをモックします

分類Dev

サーブレットによるリクエストの非同期処理

分類Dev

非同期処理の実行中にhttpリクエストを保持する

分類Dev

asyncioを使用した関数リクエストの非同期処理

分類Dev

nodejs非同期呼び出し、URLで複数のリクエストを処理する方法

分類Dev

ReactJS非同期グローバルAPIリクエストメソッド、応答の処理方法は?

分類Dev

各タスクの完了直後に非同期タスクのリストを処理します

分類Dev

SpringBoot非同期リクエスト処理タスクエグゼキュータの設定

分類Dev

Angular2:非同期画像(blob)リクエストを処理する方法は?

分類Dev

実際の場合の非同期リクエスト処理はどのように機能しますか?

分類Dev

Firestoreで複数の依存非同期クエリを処理する方法

分類Dev

非同期HTTPリクエスト処理用のどのgemが存在しますか?

分類Dev

HTTP Javaクライアントとの非同期リクエストを実行するときにエラーを処理する方法?

分類Dev

リクエストは非同期に処理されません

分類Dev

エリクサーとフェニックスと非同期の「イベント」を処理する

分類Dev

非同期リクエストの完了後のVuejs表示結果

分類Dev

Camel REST:長時間稼働するHTTPサービスの非同期リクエスト処理

分類Dev

Linuxカーネルは非同期I / O(AIO)リクエストをどのように処理しますか?

分類Dev

複数の非同期 DirectionsService.route リクエストを処理する Google Maps V3

分類Dev

多数の非同期クエリを正しく処理する

Related 関連記事

  1. 1

    Java webappでのリクエストの非同期処理

  2. 2

    Javaでの複数の非同期リクエスト処理

  3. 3

    Javaでの複数の非同期リクエスト処理

  4. 4

    非同期のHTTPリクエスト処理

  5. 5

    PythonDjango非同期リクエストの処理

  6. 6

    非同期処理のリクエストが機能しない

  7. 7

    Node.jsPOSTリクエスト応答の非同期処理

  8. 8

    Swiftで非同期httpリクエストを処理する方法

  9. 9

    非同期処理のためにGuzzleHTTPリクエストオブジェクトに認証を追加する方法

  10. 10

    非同期処理のリクエストをモックします

  11. 11

    サーブレットによるリクエストの非同期処理

  12. 12

    非同期処理の実行中にhttpリクエストを保持する

  13. 13

    asyncioを使用した関数リクエストの非同期処理

  14. 14

    nodejs非同期呼び出し、URLで複数のリクエストを処理する方法

  15. 15

    ReactJS非同期グローバルAPIリクエストメソッド、応答の処理方法は?

  16. 16

    各タスクの完了直後に非同期タスクのリストを処理します

  17. 17

    SpringBoot非同期リクエスト処理タスクエグゼキュータの設定

  18. 18

    Angular2:非同期画像(blob)リクエストを処理する方法は?

  19. 19

    実際の場合の非同期リクエスト処理はどのように機能しますか?

  20. 20

    Firestoreで複数の依存非同期クエリを処理する方法

  21. 21

    非同期HTTPリクエスト処理用のどのgemが存在しますか?

  22. 22

    HTTP Javaクライアントとの非同期リクエストを実行するときにエラーを処理する方法?

  23. 23

    リクエストは非同期に処理されません

  24. 24

    エリクサーとフェニックスと非同期の「イベント」を処理する

  25. 25

    非同期リクエストの完了後のVuejs表示結果

  26. 26

    Camel REST:長時間稼働するHTTPサービスの非同期リクエスト処理

  27. 27

    Linuxカーネルは非同期I / O(AIO)リクエストをどのように処理しますか?

  28. 28

    複数の非同期 DirectionsService.route リクエストを処理する Google Maps V3

  29. 29

    多数の非同期クエリを正しく処理する

ホットタグ

アーカイブ