reactjs - 反应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)
}
解决方案
推荐阅读
- php - 使用 ajax 时传递给 implode 的参数无效
- ruby - 如何向 PostqreSQL 添加行使用 activerecord-sinatra?
- c# - Asp.net 属性路由在本地工作,但在实时服务器上部署时失败
- xml - XSLT:如何检查 URL 中存在的特定协议或字符串
- c++ - 如何将着色器嵌入到 UWP-DLL 库中?
- sql - 需要编写一个查询来显示员工全名专业数量并将新列命名为专业
- python - Python:从文档中找出 + 和扩展之间的区别
- macos - 我真的需要实现outlineView(_:objectForValue:byItem:)吗?如何?
- swift - 此 libswiftCore.dylib 副本需要 12.2.0 之前的操作系统版本 - react-native-whatsapp-stickers
- jquery - 如何在单击时将两个不同的活动类添加到两个不同的选项卡(它在图像上的外观)