web-dev-qa-db-ja.com

Redux-アクションを呼び出して解決されるまで待機する方法

私はreact native + redux + redux-thunkを使用していますが、reduxとreact nativeの経験はあまりありません

コンポーネント内でアクションを呼び出しています。

this.props.checkClient(cliente);

if(this.props.clienteIsValid){
   ...
}

そのアクション内で、数秒かかるAPIへの呼び出しがあります。

export const checkClient = (cliente) => {
    return dispatch => {

        axios.get(`${API_Host}/api/checkclient`, header).then(response => {

            dispatch({type: CHECK_CLIENT, payload: response.data }); //valid or invalid

        }).catch((error) => {  });

    }
}

私の質問は、API応答が完了するまでアクションの戻りを遅らせるにはどうすればよいですか?クライアントが有効か無効かを知るには、API応答が必要です。つまり、アクションを解決してから、クライアントが有効か無効かを確認する必要があります。

6
Jobsdev

私は問題を理解していませんが、多分これは役立つかもしれません

export const checkClient = (cliente) => {
  return dispatch => {
    dispatch({type: CHECK_CLIENT_PENDING });

    axios.get(`${API_Host}/api/checkclient`, header).then(response => {

        dispatch({type: CHECK_CLIENT, payload: response.data }); //valid or invalid

    }).catch((error) => {  });

   }
}

...


 this.props.checkClient(cliente);

 if(this.props.clienteIsPending){
  ...
 }

 if(this.props.clienteIsValid){
  ...
 }
1
yasintz