Reactjs 未处理的拒绝(TypeError):无法读取属性';错误';未定义的

Reactjs 未处理的拒绝(TypeError):无法读取属性';错误';未定义的,reactjs,mongodb,Reactjs,Mongodb,我是个新手,我一直在尝试创建一个注册页面,但是,我陷入了这个错误。有人能告诉我应该怎么做才能解决这个错误吗 报名方式: // = Action = // Sign up export const signup = user => { return fetch( `${API}/signup`, { method: 'POST', headers: { Accept:

我是个新手,我一直在尝试创建一个注册页面,但是,我陷入了这个错误。有人能告诉我应该怎么做才能解决这个错误吗

报名方式:

//  = Action =
// Sign up
export const signup = user => {
    return fetch(
        `${API}/signup`,
        {
            method: 'POST',
            headers: {
                Accept:'application/json',
                'Content-Type' : 'application/json'
            },
            body: JSON.stringify(user)
        })
        .then(response => {
            return response.json();
        })
        .catch(err => console.log(err));
}

您需要将
fetch
逻辑封装在向调用者返回值的承诺中

export const signup = user => {
    return new Promise((resolve, reject) => {
      fetch(`${API}/signup`,
        {
            method: 'POST',
            headers: {
                Accept:'application/json',
                'Content-Type' : 'application/json'
            },
            body: JSON.stringify(user)
        })
        .then(response => response.json())
        .then(jsonData => resolve(jsonData))
        .catch(err => resolve({error: `something went wrong err : ${err}`}));
  })
}

signup(user).then(data => {
  if (data.error) {
    // handle error case 
  } else {
    // handle success case
  }
})
现在您的
signup
方法将返回一个值。您的
数据
变量将不再是
未定义的


我希望这会有所帮助,请随意添加评论或询问更多详细信息

数据变量未定义,因为您没有与后端建立连接,您的web浏览器显示
错误连接被拒绝
。您没有在express应用程序中添加CORS中间件,或者API中的url不正确。

重写注册方法(ps:I只更改了.catch处理程序)

`

//注册
导出常量注册=用户=>{
回传(
`${API}/signup`,
{
方法:“POST”,
标题:{
接受:'application/json',
“内容类型”:“应用程序/json”
},
正文:JSON.stringify(用户)
})
。然后(响应=>{
返回response.json();
})
.catch(错误=>
console.log(err));
返回错误;

}
表示数据未定义。这与反应无关。注册返回的承诺可能没有解析值,因此数据未定义。您可以共享您的
signup
方法吗?@Hurobaki,我添加了signup方法