【问题标题】:API isn't fetching data properly of a user while mapping and fetching user-details by each user ID在按每个用户 ID 映射和获取用户详细信息时,API 未正确获取用户的数据
【发布时间】:2019-09-04 08:30:40
【问题描述】:

我有一个对象数组,每个元素都有一个创建特定元素的用户的用户 ID。现在在 React 中,我正在映射数组以显示详细信息。在映射之前,我通过“axios.get”调用 API,该 API 获取用户 ID 并返回用户详细信息。 问题是从 API 返回的用户详细信息未正确加载。

API 完全没问题,但 React 前端有一些问题。 有没有更好的方法来做到这一点?

我在哪里映射提要:

调用 API 并获取用户详细信息的方法。 posted_by 是一个全局变量。

【问题讨论】:

  • 我们需要查看代码才能帮助您...
  • 请包含包含您的axios.get 实现的代码,这将有很大帮助。或者,您是否通过开发工具进行了检查?记录http请求并查看发生了什么;无论您的数据是空的,还是端点上有一些错字或其他任何东西。
  • 我已经添加了我的代码的两个图像
  • console.log(res.data) 显示什么?
  • console.log(res.data) 正在显示 api 所需的响应

标签: node.js reactjs api mapping axios


【解决方案1】:

看起来你没有正确使用 ReactJs 实现。

  1. Reactjs 会在任何状态或道具更新时重新渲染。 getUserById 是一个异步调用,因此,当 API 完成获取数据时,UI 将已经呈现。并且因为 redux 存储或反应状态没有使用来自 API 的新数据进行更新,所以 UI 不会使用新数据重新渲染。因此,您需要在 API 调用完成后使用来自 API 的数据更新您的状态/存储。 Updating the value of global variable(by posted_by = res.data) won't work in here.

  2. API 调用不应在渲染函数内部进行。否则,每次 react 都会重新渲染 UI,您将进行相同的 API 调用。您应该将它们移至其他一些生命周期方法。

希望对您有所帮助。如有任何疑问/澄清,请回复。

【讨论】:

  • 那么,我该怎么做。最好的方法是什么?
猜你喜欢
  • 2019-09-08
  • 1970-01-01
  • 1970-01-01
  • 2015-11-18
  • 1970-01-01
  • 2014-03-30
  • 1970-01-01
  • 1970-01-01
  • 2020-02-04
相关资源
最近更新 更多