First question for context

我正在演示使用localhost:3000/users/:id

还想显示连接问题的消息

如果我没有添加这个时间工作时,我得到错误,但当我修复错误错误错误仍然出现.

我想再次显示用户详细信息

import { useParams } from "react-router-dom";
import { useState, useEffect } from "react";
import axios from "axios";

function User() {
  const { id } = useParams();
  const [user, setUser] = useState(null);
  const [error, setError] = useState("");
  const [isLoading, setIsLoading] = useState(true);

  useEffect(() => {
    axios("https://jsonplaceholder.typicode.com/users/" + id)
      .then((res) => setUser(res.data))
      .catch((error) => setError(error.message))
      .finally(() => setIsLoading(false));
  }, [id]);
  return (
    <div>
      {error === "Request failed with status code 404" ? (
        <p>{error}</p>
      ) : isLoading ? (
        <h2>Loading...</h2>
      ) : (
        <div>
          <h3>User Info</h3>
          <p>Name: {user.name}</p>
          <p>Email: {user.email}</p>
          <p>Phone: {user.phone}</p>
        </div>
      )}
    </div>
  );
}

export default User;

推荐答案

当响应正常时,您必须清除错误

.then((res) => {
   setUser(res.data);
   setError("")
})

这是一个Sandbox

----

import { useParams } from "react-router-dom";
import { useState, useEffect } from "react";
import axios from "axios";

function User() {
  const { id } = useParams();
  const [user, setUser] = useState(null);
  const [error, setError] = useState("");
  const [isLoading, setIsLoading] = useState(true);

  useEffect(() => {
    axios("https://jsonplaceholder.typicode.com/users/" + id)
      .then((res) => {
        setUser(res.data);
        setError("")
      })
      .catch((error) => setError(error.message))
      .finally(() => setIsLoading(false));
  }, [id]);
  return (
    <div>
      {error === "Request failed with status code 404" ? (
        <p>{error}</p>
      ) : isLoading ? (
        <h2>Loading...</h2>
      ) : (
        <div>
          <h3>User Info</h3>
          <p>Name: {user.name}</p>
          <p>Email: {user.email}</p>
          <p>Phone: {user.phone}</p>
        </div>
      )}
    </div>
  );
}

export default User;

Javascript相关问答推荐

如何访问react路由v6加载器函数中的查询参数/搜索参数

React Hooks中useState的同步问题

React Native平面列表自动滚动

Chart.js V4切换图表中的每个条,同时每个条下有不同的标签.怎么做?

如何解决CORS政策的问题

Phaser 3 console. log()特定游戏角色的瓷砖属性

在观察框架中搜索CSV数据

Google maps API通过API返回ZERO_RESULTS,以获得方向请求,但适用于Google maps

Chart.js 4.4.2,当悬停在一个数据点上时,如何在工具提示中拥有多个数据点/标签?

如何通过使用vanilla JS限制字体大小增加或减少两次来改变字体大小

禁用.js文件扩展名并从目录导入隐式根index.js时,找不到NodeJS导入模块

如何创建返回不带`new`关键字的实例的类

如何将数据块添加到d3力有向图中?

将Node.js包发布到GitHub包-错误ENEEDAUTH

MongoDB受困于太多的数据

expo 联系人:如果联系人的状态被拒绝,则请求访问联系人的权限

在D3条形图中对具有相同X值的多条记录进行分组

如何找到带有特定文本和测试ID的div?

使用createBrowserRoutVS BrowserRouter的Reaction路由

Firebase函数中的FireStore WHERE子句无法执行