首页 > 解决方案 > 反应JS | API 命中过程成功后如何获得响应?

问题描述

这是点击 api 时的功能

功能点击触发

const  _selectBranch = async () => {
    const { user, } = props;
       await props.fetchGetBranchList(user.tokenResponse.accessToken, user.customerCode);
       const { branchList } = props;
       console.log(branchList)
  }

这个动作调度

 export const getBranchList = (token, code) => async (dispatch) => {
        dispatch({
            type: BRANCH_LIST_REQ,
        });
        try {
            const res = await apiBranch(token).listBranchGet(code);
            if(res.data != null){
                dispatch({
                    type: BRANCH_LIST_SUCCESS,
                    payload: { data: res.data },
                });
            }    
        } catch (error) {
            dispatch({
                type: BRANCH_LIST_FAILED,
                payload: error
            });
        }
    };

我的减速机

    const initialState = {
        branchList: null, 
    };
    
    export const listNews = (state = { ...initialState }, action) => {
        const { payload, type } = action;
        switch (type) {
             case BRANCH_LIST_REQ: {
                return {
                    ...state,
                    branchList: null
                };
            }
            case BRANCH_LIST_SUCCESS: {
                const { data } = payload;
                return {
                    ...state,
                    branchList: data
                };
            }
           default:
               return state;
    }
};

如果我使用 useEffect 这段代码,我成功获得了响应

useEffect(() => {
        if(props.branchList){
          setStorage("PO_ACTIVE", purchaseOrder);
          props.push('/Home/BucketList/', props.branchList.cartId)
        } 
},[props.branchList]);

但我想在这段代码的过程中得到一个响应,但是如果我使用这个代码,我得到的响应总是空的

const  _selectBranch = async () => {
        const { user, } = props;
           await props.fetchGetBranchList(user);
const { branchList } = props;
          if(branchList != null ){
              setStorage("PO_ACTIVE", purchaseOrder);
              props.push('/Home/BucketList/', props.branchList.cartId)
            } 
               console.log(branchList)
          }

标签: reactjsreduxreact-hooks

解决方案


推荐阅读