无法访问 React 中响应的数据 属性
Can't access the data property of the response in React
我有两个页面,注册和状态。从注册页面,我提交了一个表单,当我收到响应时,我想将它发送到状态页面并访问该对象的一些属性。
const register = (e) => {
e.preventDefault();
Axios.post("http://localhost:3001/register", {
name : name,
NID : NID,
birth : birth,
phone : phone,
gender : gender,
center : center,
address : address
}).then((response) => {
console.log(response.data);
setResponse(response.data.NID);
});
e.target.reset();
};
在MySQL数据库中每次post请求都成功。但是当我控制台记录 response.data 时,我没有得到数据属性。
后端:
app.post("/register", (req, res) => {
const name = req.body.name;
const NID = req.body.NID;
const birth = req.body.birth;
const phone = req.body.phone;
const gender = req.body.gender;
const center = req.body.center;
const address = req.body.address;
db.query(
"insert into register (name, NID, birth, phone, gender, center, address) values (?,?,?,?,?,?,?)",
[name, NID, birth, phone, gender, center, address],
(err, result) => {
if (err) {
res.send(err);
} else {
res.send(result);
}
}
);
});
此外,在渲染 {response.data.name} 时出现错误。
你的后端 returns 是做什么的?它只是一个 response.status 201 吗? body 是空的吗?
您应该检查开发工具的“网络”选项卡,当您到达该端点时会发生什么。
HTTP 状态代码:https://en.wikipedia.org/wiki/List_of_HTTP_status_codes
您记录的是您的服务器return作为响应的内容。您需要 return 在后端应用程序的响应中提供您需要的内容。因此,不要使用 res.send(result)
,其中 result
是数据库查询的结果,而是使用要发送到前端的任何数据调用 res.send
。
或者如果您需要的是在请求参数中,只需等待请求成功(就像在您的代码示例中一样)并使用请求参数。 IE。而不是 setResponse(response.data.NID)
使用 setResponse(NID)
- 您已经在代码示例中将“NID”作为变量。
我有两个页面,注册和状态。从注册页面,我提交了一个表单,当我收到响应时,我想将它发送到状态页面并访问该对象的一些属性。
const register = (e) => {
e.preventDefault();
Axios.post("http://localhost:3001/register", {
name : name,
NID : NID,
birth : birth,
phone : phone,
gender : gender,
center : center,
address : address
}).then((response) => {
console.log(response.data);
setResponse(response.data.NID);
});
e.target.reset();
};
在MySQL数据库中每次post请求都成功。但是当我控制台记录 response.data 时,我没有得到数据属性。
后端:
app.post("/register", (req, res) => {
const name = req.body.name;
const NID = req.body.NID;
const birth = req.body.birth;
const phone = req.body.phone;
const gender = req.body.gender;
const center = req.body.center;
const address = req.body.address;
db.query(
"insert into register (name, NID, birth, phone, gender, center, address) values (?,?,?,?,?,?,?)",
[name, NID, birth, phone, gender, center, address],
(err, result) => {
if (err) {
res.send(err);
} else {
res.send(result);
}
}
);
});
此外,在渲染 {response.data.name} 时出现错误。
你的后端 returns 是做什么的?它只是一个 response.status 201 吗? body 是空的吗? 您应该检查开发工具的“网络”选项卡,当您到达该端点时会发生什么。
HTTP 状态代码:https://en.wikipedia.org/wiki/List_of_HTTP_status_codes
您记录的是您的服务器return作为响应的内容。您需要 return 在后端应用程序的响应中提供您需要的内容。因此,不要使用 res.send(result)
,其中 result
是数据库查询的结果,而是使用要发送到前端的任何数据调用 res.send
。
或者如果您需要的是在请求参数中,只需等待请求成功(就像在您的代码示例中一样)并使用请求参数。 IE。而不是 setResponse(response.data.NID)
使用 setResponse(NID)
- 您已经在代码示例中将“NID”作为变量。