微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用Axios在Reactjs中从Api获取数据

如何解决使用Axios在Reactjs中从Api获取数据

我正在尝试从此API https://randomuser.me/api/?results=25获取数据 用此代码

function Users() {
 const [Users,setUsers] = useState([])
    useEffect(() => {
        axios.get('https://randomuser.me/api/?results=25')
        .then(Response=>{
            if(Response.data){
                alert("FOund")
                setUsers([Response.data])
                

            }else{
                alert("not found")
            }
        })
    },[])
    const displaylist = Users.map((User,index)=>{
        return(
        <h3>{User.gender}</h3>
        )
    })
    
    return (
        <div>
            {displaylist}
        </div>
    )
}

export default Users

但是没有任何显示,控制台显示错误: 警告:列表中的每个孩子都应该有一个唯一的“关键”道具。

检查Users的渲染方法。有关更多信息,请参见https://reactjs.org/link/warning-keys。 在h3 在用户处(http:// localhost:3000 / static / js / main.chunk.js:627:83) 在div 在应用程序中

解决方法

当您通过数组映射时,React需要一个唯一的键,例如User.id;在这种情况下,您也可以使用索引。我对您的功能做了如下更改:

function Users() {
  const [Users,setUsers] = useState([]);
  useEffect(() => {
    axios.get("https://randomuser.me/api/?results=25").then((Response) => {
      if (Response.data) {
        alert("FOund");
        setUsers(Response.data.results);
      } else {
        alert("not found");
      }
    }).catch(error => console.log(error));
  },[]);
  const displaylist = Users.map((User,index) => {
    return <h3 key={index}>{User.gender}</h3>;
  });

  return <div>{displaylist}</div>;
}

export default Users;
,

enter image description here

Json结果的使用是错误的,`

  if (Response.result) {
    alert("FOund");
    setUsers(Response.result);
  } else {
    alert("not found");
  }`

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。