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方法