【问题标题】:display fetched data from bearer token api in reactjs在reactjs中显示从不记名令牌api获取的数据
【发布时间】:2022-11-17 21:52:10
【问题描述】:

我试图显示从不记名令牌 API 获取的数据,但我做不到

我可以在控制台中看到数据

这是我的代码:

  const [products, setProdcts] = useState([]);      
fetch("https://RANDOMAPI.com/api/products", {
        method: "GET",
        headers: {
          Authorization: `Bearer ${accessToken}`,
          "Content-Type": "application/json",
        },
        mode: "cors",
        cache: "default",
      })
        .then((response) => response.json())
        .then((json) => console.log(json))
        .catch((error) => console.log(error));
      console.log("response");
    
    
    {products?.length > 0 ? (
            <div className="container">
              {products.map((product) => (
                <div className="product">
                  <p>{product. Name}</p>
                </div>
              ))}
            </div>
          ) : (
            <div className="empty">
              <h2>No products found</h2>
            </div>
          )}

我不确定除了映射之外是否还有其他方式显示数据

请告诉我我是否做错了什么?

【问题讨论】:

  • 您在哪里对收到的数据进行过任何处理?这段代码所做的只是将其记录到控制台。您是不是忘记更新 products 状态值?
  • 你在哪里给products赋值
  • @David 抱歉,我没能正确理解你的意思,我应该如何更新产品?如果你的意思是我忘记使用 useState 不,我用过它,但我没有把它放在代码中
  • @SachilaRanawaka 我已经更新了我的问题,你能再看看吗?
  • @David 我更新了我的问题

标签: reactjs fetch-api display


【解决方案1】:

数据仅记录到控制台,因为这是您对数据所做的:

.then((json) => console.log(json))

调用console.log 将数据记录到控制台。它才不是对 products 状态值有任何影响。

如果您希望使用获取的数据更新该状态值,请更新状态值:

.then((json) => setProdcts(json))

这将触发使用新更新的状态数据重新渲染组件。

【讨论】:

  • 我在控制台中收到此错误 Uncaught TypeError: products.map is not a function at App (App.js:62:1)
  • @HazalKaya:那么products 不是数组。那是什么?你为什么期望它是一个数组?我们不知道你正在使用的数据,你必须调试才能观察到它。
  • “产品”: [ {
  • 这就是数据的开始方式
  • @HazalKaya:您提供的信息并不完全清楚,但它听上去像products 在这种情况下是一个目的与财产名为products,这是一个数组。所以也许你想要的是:setProdcts(json.products)总是debug 以观察您正在使用的实际数据并跟踪您的数据结构和类型。
猜你喜欢
  • 2016-12-14
  • 2020-06-20
  • 2021-07-12
  • 2021-09-28
  • 1970-01-01
  • 1970-01-01
  • 2018-06-05
  • 2023-01-21
相关资源
最近更新 更多