React Js Context Uncaught(在承诺中)TypeError:无法读取未定义的属性“数据”
2020-06-03
1492
我正在使用 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
是错误的。我在 stack overflow 上进行了一些研究,它提到了我使用的
Arrow Function
。或者是任何 snytax 错误?
3个回答
看起来您的 api 可能会产生
undefined
作为响应。
因此请检查结果
.then((result) => {
if (result && result.data.Status === 'Success') {
gdh
2020-06-03
我认为 result.data.data.Status 是正确的方式。或者你可以用 console.log() 或调试器打印它来查看结果是什么格式
GreenKing19
2020-06-03
好吧,这是我的错。
我的登录的总体过程是,我的 API 将在用户成功登录后返回一个 token。稍后,在我的另一个 js 中,导出
default api
正在使用来自 axios 的拦截器。
我在那里设置了一个
gettoken
函数,但起初我正在处理登录,因此我的前端没有存储 token。结果,拦截返回错误 - 这导致未定义
我的 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);
});
Lawraoke
2020-06-12