我可能会有奇怪的事情发生--我向端点"/Login“发送了一个请求,它给了我很好的响应!
我做我的事,但出于某种原因,我看到一个警告说,
未处理的承诺拒绝/ typeError:未定义不是对象(计算'error.response.data')
如果有人能解释的话?
代码段
signIn = data => {
this.setState({loading: true});
API.post('/login', data)
.then(response => {
let {
data: {
data: {
response: {token},
},
},
} = response;
this.setState({loading: false});
reactotron.log('response', response);
reactotron.log(token);
deviceStorage.saveKey('id_token', token);
})
.catch(error => {
alert('catched!!'); // it's appear :)
this.setState({error: error.response.data, loading: false});
reactotron.error(error.response.data);
});
};=这个函数~_~是错误的!
为什么让我出错?
_deviceStorage.default.saveKey is not a function
import { AsyncStorage } from '@react-native-community/async-storage';
import reactotron from 'reactotron-react-native';
const deviceStorage = {
// our AsyncStorage functions will go here :)
saveItem= async(key, value)=>{
try {
await AsyncStorage.setItem(key, value);
} catch (error) {
reactotron.log('AsyncStorage Error: ' + error.message);
}
}
};
export default deviceStorage;发布于 2020-02-12 18:09:47
error是错误消息(拒绝消息)的字符串表示形式。但是当你说error.response.data的时候,你把它当作是一个对象
.catch(error => {
alert('catched!!'); // it's appear :)
this.setState({error: error, loading: false});
reactotron.error(error.response.data);
});发布于 2020-02-12 18:21:27
如果在“然后”块中遇到错误,则可以调用捕获。检查您的然后块是否有任何可能的错误。这可能就是为什么即使承诺返回成功时也调用catch的原因。
const promise1 = new Promise(function(resolve, reject) {
resolve("resp");
});
promise1.then(function(resp) {
console.log(resp);
throw 'error'
}).catch(function(error) {
console.error(error);
});
https://stackoverflow.com/questions/60194471
复制相似问题