无法访问 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”作为变量。