我正在使用React并从api请求数据,但似乎我的“数据”出现错误
我的课堂如下:
class Login extends Component {
constructor() {
super();
this.state = {
UserName: '',
Password: '',
var:'',
}
this.Login = this.Login.bind(this);
}
Login(event) {
debugger;
api.post('/api/login', {
UserName: this.state.UserName,
Password: this.state.Password,
})
.then((result) => {
if (result.data.Status === 'Success') {
this.setState({var: result.data.status});
alert("User login Successfully");
} else {
alert('Invalid User');
}
debugger;
})
}
我正在尝试登录。 用户提出请求后,我将从api和 setState 我的 var
中获取一些数据错误提示我的result.data.Success
错误。我对堆栈溢出进行了一些研究,其中提到了我使用的 Arrow Function 。还是任何snytax错误?
答案 0 :(得分:1)
好像您的api可能导致undefined
作为响应。
因此请检查结果
.then((result) => {
if (result && result.data.Status === 'Success') {
答案 1 :(得分:1)
我认为result.data.data.Status是正确的方法。或者,您可以使用console.log()或调试器进行打印,以查看结果的格式
答案 2 :(得分:0)
好,这是我的坏事。
登录的整个过程是用户成功登录后,我的API会传递回令牌。稍后,在我的另一个js中,导出default api
是使用axios的拦截器。
我在那里设置了一个gettoken
函数,但是起初我正在处理登录,因此前端没有存储令牌。结果是,拦截返回错误-导致未定义
我的Api代码如下:
import {Component} from 'react';
import axios from 'axios';
const instance = axios.create({
baseURL: 'http://localhost:9999/'
});
instance.interceptors.request.use(function (config) {
config.localStorgae.getItem('token');
return config;
}, function (error) {
return Promise.reject(error);
});