reduxからpromiseのステータスを取得するにはどうすればよいですか?

ハリワルシャン

私のreactNativeアプリケーションでreduxを使用しています。一部のプロファイルデータを更新するために、コンポーネントの1つでアクションupdateProfile(data)をディスパッチしています

私のコンポーネントで

values = { // some Js object values }
updateProfile(values)

actionCreatorで

export const updateProfile = (details) =>(dispatch) => {

dispatch(profileLoading()) 
axios.post(SERVERURL,details)  //updating the details to the server
  .then((result)=>{            
        dispatch(addProfile(result.data[0]))   //updating the returned details to redux state
      })
  .catch((err)=>{
        dispatch(profileFailed(err.response))
      })
    })
 
}

export const profileLoading = () => ({
    type: ActionTypes.PROFILE_LOADING,
})

export const addProfile = (profile) => ({
    type: ActionTypes.ADD_PROFILE,
    payload: profile
})

export const profileFailed = (err) => ({
    type: ActionTypes.PROFILE_FAILED,
    payload: err
})

profile.js

import * as ActionTypes from './ActionTypes'

export const profiles = (state = {
isLoading:true,
errMess:null,
profiles:{ }

},action) =>{
    switch(action.type){
        case ActionTypes.ADD_PROFILE:
            return {...state, isLoading:false, errMess:null, profiles: action.payload}
        
        case ActionTypes.PROFILE_LOADING:
            return {...state, isLoading:true,errMess:null}
        
        case ActionTypes.PROFILE_FAILED:
            return {...state, isLoading:false,errMess:action.payload, profiles: {}}

        case ActionTypes.DELETE_PROFILE:
            return {...state,isLoading:false,errMess:null,profiles:{}}

        default:
            return state
        }   
        
}

この行updateProfile(values)の後、現在、更新の結果を知るために以下のようなsetTimeoutを使用しています

updateProfile(values)
setTimeout(()=>{
    if(profiles.errMess==null){
        setCondition('completed')
        nav.navigate('some Screen')
    }
    else{
        setCondition('error')
        }
},3000)

他の画面に移動する必要があるため、更新がすぐに完了しても常に遅延が発生し、更新に3秒以上かかると頭痛の種になるため、SetTimeOutを使用できません。私が欲しいのは、データがサーバーに更新されたときにのみ「いくつかの画面」に移動することです(promiseのように)はい私はredux状態で状態値を更新できますが、コンポーネントレベルでそれを達成する必要があります。reduxは初めてです。誰か助けてください。

ニツェウ

私はあなたがそれを呼ぶところの約束にアクセスするためにaxiosリクエストを返すことができると信じています。

ここで直面しているのと同じ課題について話しているディスカッションを見ることができます:https//github.com/reduxjs/redux-thunk/issues/61

// Action Creator
export const updateProfile = (details) =>(dispatch) => {
  dispatch(profileLoading())

  return axios.post(SERVERURL,details)
    .then((result) => {            
      dispatch(addProfile(result.data[0]))
    }).catch((err) => {
      dispatch(profileFailed(err.response))
    })
  })
}


// Usage
dispatch(updateProfile(values)).then((response) => {
  // handle successful response
}).catch((err) => {
  // handle failure
})

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

NSURLSessionDataTaskからステータスコードを取得するにはどうすればよいですか?

分類Dev

アンカータグからテキストを取得するにはどうすればよいですか?

分類Dev

Reactのpromiseから応答データを取得するにはどうすればよいですか?

分類Dev

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

分類Dev

特定の期間の次のステータスを取得するにはどうすればよいですか?

分類Dev

Rのデータベースから列名を取得するにはどうすればよいですか?

分類Dev

mongodbのlistDatabasesからデータベース名を取得するにはどうすればよいですか?

分類Dev

Firebaseデータベースから特定の値を取得するにはどうすればよいですか?

分類Dev

データベースから特定の画像を取得するにはどうすればよいですか?

分類Dev

データベースから次の行を取得するにはどうすればよいですか?

分類Dev

jspのWebサービスからデータを取得するにはどうすればよいですか

分類Dev

0x6310ステータスの後にJavaCardからさらにデータを取得するにはどうすればよいですか?

分類Dev

httpapiでrabbitmq-shovelのステータスを取得するにはどうすればよいですか。

分類Dev

jQueryで結果の本文とステータスを取得するにはどうすればよいですか?

分類Dev

SQLで配信日のステータスを取得するにはどうすればよいですか?

分類Dev

EventbriteAPIを介して注文のステータスを取得するにはどうすればよいですか?

分類Dev

HTTPステータスコードからHTTPステータステキストを取得するにはどうすればよいですか?

分類Dev

@AfterMethodでTestNG / Seleniumからテスト結果のステータスを取得するにはどうすればよいですか?

分類Dev

左結合を使用してマスターテーブルからすべてのデータを取得するにはどうすればよいですか?

分類Dev

スパース深度データから深度画像を取得するにはどうすればよいですか?

分類Dev

Ansibleでサービスステータスを取得するにはどうすればよいですか?

分類Dev

Ansible:Ansibleでサービスステータスを取得するにはどうすればよいですか?

分類Dev

Pythonコードからプロセスのステータスを取得するにはどうすればよいですか?

分類Dev

別のシェルセッションからプロセスの終了ステータスを取得するにはどうすればよいですか?

分類Dev

別のシェルセッションからプロセスの終了ステータスを取得するにはどうすればよいですか?

分類Dev

Googleスプレッドシートのテーブルからデータのリストを取得するにはどうすればよいですか?

分類Dev

iOSのFacebookから友達に最新のステータスを取得するにはどうすればよいですか?

分類Dev

Googleデータストアからデータを取得するにはどうすればよいですか?

分類Dev

UNIXシェルスクリプトからJavaプログラムの完了ステータスを取得するにはどうすればよいですか?

Related 関連記事

  1. 1

    NSURLSessionDataTaskからステータスコードを取得するにはどうすればよいですか?

  2. 2

    アンカータグからテキストを取得するにはどうすればよいですか?

  3. 3

    Reactのpromiseから応答データを取得するにはどうすればよいですか?

  4. 4

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

  5. 5

    特定の期間の次のステータスを取得するにはどうすればよいですか?

  6. 6

    Rのデータベースから列名を取得するにはどうすればよいですか?

  7. 7

    mongodbのlistDatabasesからデータベース名を取得するにはどうすればよいですか?

  8. 8

    Firebaseデータベースから特定の値を取得するにはどうすればよいですか?

  9. 9

    データベースから特定の画像を取得するにはどうすればよいですか?

  10. 10

    データベースから次の行を取得するにはどうすればよいですか?

  11. 11

    jspのWebサービスからデータを取得するにはどうすればよいですか

  12. 12

    0x6310ステータスの後にJavaCardからさらにデータを取得するにはどうすればよいですか?

  13. 13

    httpapiでrabbitmq-shovelのステータスを取得するにはどうすればよいですか。

  14. 14

    jQueryで結果の本文とステータスを取得するにはどうすればよいですか?

  15. 15

    SQLで配信日のステータスを取得するにはどうすればよいですか?

  16. 16

    EventbriteAPIを介して注文のステータスを取得するにはどうすればよいですか?

  17. 17

    HTTPステータスコードからHTTPステータステキストを取得するにはどうすればよいですか?

  18. 18

    @AfterMethodでTestNG / Seleniumからテスト結果のステータスを取得するにはどうすればよいですか?

  19. 19

    左結合を使用してマスターテーブルからすべてのデータを取得するにはどうすればよいですか?

  20. 20

    スパース深度データから深度画像を取得するにはどうすればよいですか?

  21. 21

    Ansibleでサービスステータスを取得するにはどうすればよいですか?

  22. 22

    Ansible:Ansibleでサービスステータスを取得するにはどうすればよいですか?

  23. 23

    Pythonコードからプロセスのステータスを取得するにはどうすればよいですか?

  24. 24

    別のシェルセッションからプロセスの終了ステータスを取得するにはどうすればよいですか?

  25. 25

    別のシェルセッションからプロセスの終了ステータスを取得するにはどうすればよいですか?

  26. 26

    Googleスプレッドシートのテーブルからデータのリストを取得するにはどうすればよいですか?

  27. 27

    iOSのFacebookから友達に最新のステータスを取得するにはどうすればよいですか?

  28. 28

    Googleデータストアからデータを取得するにはどうすればよいですか?

  29. 29

    UNIXシェルスクリプトからJavaプログラムの完了ステータスを取得するにはどうすればよいですか?

ホットタグ

アーカイブ