【发布时间】:2020-08-01 19:12:52
【问题描述】:
我收到一个后端响应,以使用 Axios 获取驱动程序详细信息,并且在收到该响应后,我想获取驱动程序的名称和地址。为此,我尝试将值设置为状态变量但无法分配,并且我尝试将值分配给数组状态变量并稍后访问它们但我无法获得结果
这是代码sn-p:
getDriverInfo = async () => {
var session = sessionStorage.getItem("session");
var apiBaseUrl = "http://localhost:4000/api/";
// var self = this;
let det = [];
var payload = {
nic: session,
};
axios
.post(apiBaseUrl + "driverDetails", payload)
.then(async (response) => {
console.log(response.data.success);
if (response.data.code == 204) {
console.log("Driver Data retrieved successfull");
response.data.success.map((element) => {
det.push(element);
this.state.Ddetails.push(element);
});
console.log(det.length);
console.log(this.state.Ddetails[0].dln);
await this.setState({
fname: this.state.Ddetails[0].fName,
lname: this.state.Ddetails[0].lName,
});
} else {
console.log("Details does not exists");
alert("Details does not exist");
}
})
.catch(function (error) {
console.log(error);
});
console.log(det.length);
this.state.Ddetails.map((item) => {
console.log("Map");
console.log(item.dln);
});
console.log(this.state.Ddetails.dln);
};
【问题讨论】:
-
使用 setState( { Ddetails : ....})
-
直接改变 React 状态不是一个好习惯:this.state.Ddetails.push(element)。提问前请先阅读文档。
-
@EddwinPaz 那也没用
标签: reactjs dictionary axios setstate