当前位置: 首页 > 知识库问答 >
问题:

setState在React和Node Js中返回NULL[重复]

淳于健
2023-03-14

我有一个节点JSAPI,在这里我通过find函数获取数据库数据。它工作完美,并发送我的结果。使用React和Axios,我获得了数据,但只要我将数据传递到setState中,它就会发送null

这是我的APIfind()函数

dbo.collection("students").find({}).toArray(function(err, result) {
        if (err) throw err;
        var students = result;
        reponse.send(students);
        db.close();
    });

这是我的Axiosconstructor()componentDidMont()

    constructor() {
    super();
    this.state = {
      students: [],
    }
  }

    componentDidMount() {
    axios.get("http://localhost:3333/").then((data) => {
      console.log(data);
      this.setState({students:data.data.students});
      console.log(this.state);
    });
  }

console.log(数据)返回这个

`Object { data: (33) […], status: 200, statusText: "OK", headers: {…}, config: {…}, request: XMLHttpRequest }`

console.log(this.state)返回

对象{学生:未定义}

共有1个答案

艾灿
2023-03-14

首先,状态更新是异步的,所以您不会立即看到更新的状态

其次,响应数据具有数组数据,因此您只需使用data.data

this.setState({students:data.data});
 类似资料:
  • 我试图将三列作为一个字符串,但由于某些原因,我只得到NULL。 以下是代码: places表包含name、city和country三列,它不是空的,但在某些列中可以包含NULL。 结果是: 我试着从这篇帖子中得到答案,如果任何字段包含NULL,MySQL CONCAT将返回NULL,但它对我不起作用。

  • 我知道有类似的线程讨论范围问题。 使用以下组件 当您单击时,您会得到的属性'setState' 我知道你可以像这样做,但所有这些看起来都很奇怪,只是为了让它工作。 什么被认为是最优雅的方式来做到这一点?当然,人们必须有一个首选的方式,除了眼睛疼痛之外,还有其他好处?

  • 我正在尝试从json文件读取到读取器,以便将其解析为java对象:` ' 我在运行时收到一个NullPointerException。

  • 问题内容: 我在第一次调用它返回值但第二次返回null的地方遇到问题(这没有关闭结果集或sql连接) 当然,该代码很容易修复,可以避免第二次调用,但是我想理解的是为什么如果第一个未调用,则第二个返回null 问题答案: 从Javadoc: 为了获得最大的可移植性,应按从左到右的顺序读取每一行中的结果集列,并且每一列只能读取一次。 在后台,您正在消耗TCP流中的字节,因此不能两次检索相同的列值也就不

  • 问题内容: 我有一个问题,尽管数据库中存在一个键/条目,但Redis命令仍会返回。 我从未在本地计算机上运行的Redis服务器上遇到此问题。令人讨厌的是,没有错误或任何东西。 我使用Redis Desktop Manager来检查Heroku Redis数据库中的内容。 这是获取数据库中值的NodeJS代码: 我可能会做的一件异常事如下:我同时有多达6个处理数据库中的值。 知道什么会导致这种奇怪的