gpt4 book ai didi

node.js - 无法读取未定义的属性“错误”。有什么问题?

转载 作者:太空宇宙 更新时间:2023-11-04 01:38:21 26 4
gpt4 key购买 nike

我的REST API的原因是:{"error":"Auth failed. User does not exist"}
我尝试在React中使用setState将此错误保存到我的状态,但是我遇到了以下错误:无法读取未定义的属性“错误”。有什么问题?

export const login = user =>
axios
.post('http://localhost:3000/api/users/login', {
login: user.login,
password: user.password,
})
.then(res => {
localStorage.setItem('userToken', res.data.token);
return res.data.token;
})
.catch(err => {
console.log(err);
});


React.js中的功能:

  onSubmit(e) {
e.preventDefault();

const user = {
login: this.state.login,
password: this.state.password,
};

login(user).then(res => {
if (!res.error) { // <- this error: TypeError: Cannot read property 'error' of undefined
this.props.history.push(`/dashboard`);
} else {
this.setState({ error: res.error });
}
});
}


这是我的后端代码:

    // Login Action
...
return res.status(200).json({
message: 'Auth successful',
token,
});
}
res
.status(400)
.json({ error: 'Auth failed. The password is incorrect.' });
} else {
res.status(400).json({ error: 'Auth failed. User does not exist' });
}
})
.catch(err => {
res.status(400).json({ error: err });
});
};

最佳答案

尝试这个:

login(user).then(() => this.props.history.push(`/dashboard`))
.catch(error=>this.setState({ error })


但是也许还有另一个问题,您通常不能为了陈述不变性而努力陈述自己的方式。我想您知道,但我发帖以防万一:

this.setState({ history: [...this.state.history, `/dashboard`] })

关于node.js - 无法读取未定义的属性“错误”。有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53805403/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com