【发布时间】:2021-08-21 11:05:21
【问题描述】:
我有一个 React-Native 代码,可以从 backEndless 检索 REST API 的数据。
在某些情况下,数据是一个空数组。我的代码返回此错误:
error [TypeError: undefined is not an object (evaluating 'res.data[0]['ownerId']')]
这意味着 AXIOS 输入 .then 部分而不是输入 .catch 部分,它接受空数组作为结果。
我应该得到的是 Request Failed with code 401,但我无法捕捉到错误。
有什么帮助吗?
这是我的代码:
export const confirmCode = (phone,code)=>{
return (dispatch,getState)=>{
dispatch(confirmCodeStart());
phone = phone.substring(2);
console.log(''+code+':'+phone+'');
axios.get('/data/Auth?where=code='+code+'&phone='+phone+'')
.then((res) =>{
console.log(res.status);
console.log('entereeeeed');
ownerid = res.data[0]['ownerId'];
//console.log(res.data[0]['ownerId']+"aaaaa");
//getUser(res.data[0]['ownerId'],phone,props);
////////
//api request
axios.post('/users/login',{'objectId':ownerid})
.then(res2=>{
dispatch(confirmCodeSuccess());
//console.log(res.data);
userToken=res2.data['user-token'];
userData=res2.data;
console.log(res2.data);
//const {token,user} = res2.data;????????
axios.defaults.headers.Authorization ='Bearer '+userToken;
//dispatcher.dispatch({type:'SET_TOKEN',payload:{token:userToken}});
//dispatcher.dispatch({type:'SET_USER',payload:{user:userData}});
dispatch(setToken(userToken));
dispatch(setUser(userData));
AsyncStorage.setItem(TOKEN_KEY,userToken);
AsyncStorage.setItem(USER_KEY,JSON.stringify(userData));
})
})
.catch(error=>{
Reactotron.log('error',error);
console.log('error',error);
dispatch(confirmCodeFailure());
})
};
};
【问题讨论】:
标签: android ios react-native axios backendless