繁体   English   中英

未处理的 promise 拒绝:TypeError: undefined is not an object(评估 '_context.t0.data.error')在 expo

[英]Unhandled promise rejection: TypeError: undefined is not an object (evaluating '_context.t0.data.error') in expo

 export default class Signin extends Component {

     state ={
         errorMessage: null
     }

这里我使用apisauce和credentials来测试连接

   signin = async() => {
       try{
         const response = await api.post('/auth/authenticate')({
             email:'teste93@teste.com',
             password:'123'
         })
    

         const {user, token} = response.data
         await AsyncStorage.multiSet([
             ['@backend : token', token]
             ['@backend : user',JSON.stringify(user) ]
         ])

expo 说错误就在这里

       }catch(response){
         this.setState({errorMessage: response.data.error})
       }
    
   }

   render() {
      return (
       <View style={styles.Container}>
            { this.state.errorMessage && <Text>{ this.state.errorMessage }</Text> }
         <Button onPress={this.signin} title="Entrar"/>
       </View>
     );
   }
 }

这里是我的服务/api

 import { create } from 'apisauce'


 const api = create({
     baseURL: 'http://locahost:300'
 })

 api.addResponseTransform(response => {
     if (!response.ok) throw response;
     console.log(response)
 })

 export default api;

类型错误:未定义不是 object

此错误通常表明您正在尝试访问非对象类型的属性。 catch块中公开的值将是Error object,它没有data属性。

将您的catch块更改为以下内容。

} catch (error) {
  this.setState({errorMessage: error.message})
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM