可能未处理的承诺拒绝反应原生

时间:2018-01-10 15:46:57

标签: reactjs react-native

在我的数据加载器中,我得到的响应是:

 method: 'PUT'
     })
    .then(response => response.json().then(json => {
       response.ok ? json : Promise.reject(json)}))
    .then(schematizeResponse)

在我的屏幕上,我有一个按钮,可以调度该功能,该按钮是:

  _updateValues(){
  try{
   //update Email
    this.props.editProfile({
      currentUserToken: this.props.userSession.currentUserToken,
      data: {
        email: this.state.newEmail
      }
    })  
    this.state.updated= true;
  }
  catch(e) {
    this.state.updated= false;
  }

当响应失败时,我得到:

可能未处理的承诺拒绝(id:0)和响应正文。

我通过道具调用的editProfile在我的控制器中:

  function mapDispatchToProps(dispatch) {
return {
  dispatch,
  editProfile: bindActionCreators(editProfileRequest, dispatch)
};

}

更新:

   this.props.editProfile({
      currentUserToken: this.props.userSession.currentUserToken,
      data: {
        email: this.state.newEmail
      }
    })  

我需要:

  try {
       this.props.editProfile({
      currentUserToken: this.props.userSession.currentUserToken,
      data: {
        email: this.state.newEmail
      }
    })  
  }
 catch( error ? )
{
this.setState({failedUpdate:true})
}

如何处理拒绝?

1 个答案:

答案 0 :(得分:1)

您的提取中订单有误。试试这个:

method: 'PUT'
     })
    .then(response => {
     if (response.ok)
        return response.json()
     else throw new Error('error')
    .then(schematizeResponse).
     catch(err => alert(err));