在React中从api获取数据

Shubham Sharma

Blog.js

import React, { useState, useEffect } from "react"
import Axios from "axios"

const Home = () => {
  const [blog, setBlog] = useState([])
  
  useEffect(() => {
    loadBlog()
  }, [])

  const loadBlog = async () => {
    await Axios.get(`http://localhost:3001/api/blog/get`)
      .then((res) => {
        console.log(res.data.data)
        setBlog(res.data.data)
        console.log(blog)
      })
      .catch((err) => {
        console.log(err)
      })
  }

  return (
    <>
      <div className="container">
        <div className="col-lg-10">
          <h2> React CRUD Operation </h2>
        </div>
        <div className="col-lg-2">
          <button> Add Blog </button>
        </div>
        <table className="table table-striped">
          <thead>
            <tr>
              <th>ID</th>
              <th>Picture</th>
              <th>Title</th>
              <th>Short Description</th>
              <th>Author</th>
              <th>Action</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td>{blog.id}</td>
              <td>
                <img src={"../../../public/logo512.png"} alt="not available" />
              </td>
              <td>{blog.title}</td>
              <td>{blog.short_desc}</td>
              <td>{blog.author}</td>
              <td>
                <button>Edit</button> <button>Delete</button>{" "}
              </td>
            </tr>
          </tbody>
        </table>
      </div>
    </>
  )
}

export default Home

我正在从API获取数据并获取数据。数据可以正常运行,但不会进入setBlog Hook。当我控制台响应时,它很好并且可以成功获取数据,但问题是它不在setBlog挂钩中。我是新来的反应者,不知道为什么它不在setBlog挂钩中。任何帮助将不胜感激

肯尼·约翰·雅各布

这是由于设置状态的异步特性。您编写的代码,

.then((res) => {
        console.log(res.data.data)
        setBlog(res.data.data)
        console.log(blog)
      })

此处它是同步执行的,并且实际状态更新仅在完成后才发生。如果您在功能体内记录控制台状态变量,它将在下一次渲染时更新。例如

const Home = () => {
  const [blog, setBlog] = useState([])
  console.log(blog)
  .
  .
  .

首次加载组件时,blog值将设置为空数组(因为它作为参数传递给setState)。然后,将调用您的数据获取并设置博客的值。现在,该blog值将是您获取的数组。您可以在渲染中使用它。

您将需要映射博客中的项目才能访问它。类似于以下内容。

.
.
.
<tbody>
  {blog.map(function (entry) {
    return (
      <tr>
        <td>{entry.id}</td>
        <td>
          <img src={"../../../public/logo512.png"} alt="not available" />
        </td>
        <td>{entry.title}</td>
        <td>{entry.short_desc}</td>
        <td>{entry.author}</td>
        <td>
          <button>Edit</button> <button>Delete</button>{" "}
        </td>
      </tr>
    );
  })}
</tbody>
.
.
.

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在 React 中获取 API 数据

来自分类Dev

想要从React Js中的API获取数组中的数据

来自分类Dev

在React中获取数据

来自分类Dev

如何通过使用axois从React中的api获取数据?

来自分类Dev

如何获取数据并存储在React Context API中?

来自分类Dev

在 React 中从 WatermelonDB 获取数据

来自分类Dev

从API中的对象获取数据

来自分类Dev

从javascript中的api获取数据

来自分类Dev

如何从多个状态中过滤数据以React Native的方式从单独的API获取数据

来自分类Dev

如何在 React Native 中从 API 端点获取完整数据后显示数据?

来自分类Dev

React JS从多个API函数获取数据

来自分类Dev

使用React挂钩从API重新获取数据

来自分类Dev

如何在React Native EXPO中的Dropdown选项中动态获取api数据

来自分类Dev

API成功获取数据后如何在React Native中调用渲染

来自分类Dev

从React中的api获取数据后应用过滤器

来自分类Dev

如何通过Context API在React.Component类中获取数据?

来自分类Dev

如何在我的对象(Redux、React)中获取数据(我的 api json)?

来自分类Dev

React Native在MYSQL中获取数据

来自分类Dev

如何在React中获取数据属性?

来自分类Dev

React中的Chart JS不获取数据

来自分类Dev

在React中渲染之前获取Firestore数据

来自分类Dev

在React中无法从mongodb获取数据

来自分类Dev

如何使用redux在react中获取数据?

来自分类Dev

从 Rails 获取数据到 React 组件中

来自分类Dev

react中如何获取状态的初始数据

来自分类Dev

在 React Native 中从 php 获取数据

来自分类Dev

如何从 React 中的 Websocket 获取数据?

来自分类常见问题

从API响应中获取XML数据

来自分类Dev

从javascript中的API获取电影数据

Related 相关文章

热门标签

归档