Reactjs 尝试在react js中分页时未更新状态

Reactjs 尝试在react js中分页时未更新状态,reactjs,Reactjs,我正在尝试从“”获取数据https://reqres.in/api“并试图将其分页。第一次加载时它可以正常工作,但当我尝试对其进行分页时,我认为useState()不能正常工作。请帮帮我 你也可以在这个链接上看到所有的跑步记录 import React,{useState,useffect}来自“React”; 从“axios”导入axios; 从“./api/baseapi”导入基本url 从“道具类型”导入{func}; 函数仪表板(){ 常量[allUsers,setAllUsers]=u

我正在尝试从“”获取数据https://reqres.in/api“并试图将其分页。第一次加载时它可以正常工作,但当我尝试对其进行分页时,我认为useState()不能正常工作。请帮帮我

你也可以在这个链接上看到所有的跑步记录

import React,{useState,useffect}来自“React”;
从“axios”导入axios;
从“./api/baseapi”导入基本url
从“道具类型”导入{func};
函数仪表板(){
常量[allUsers,setAllUsers]=useState([]);
const[totalPages,setTotalPages]=useState(0);
const[currentPage,setCurrentPage]=useState(1);
//const[loading,setLoading]=useState(true);
const getUserDetail=(userId)=>{
console.log(用户ID)
}
//函数调用api
常数paginate=async(pageNum)=>{
setCurrentPage(pageNum);
}
常量getAllUsers=(当前页面)=>{
get(`${base\u url}/users?page=${currentPage}`{
方法:“GET”,
标题:{
“接受”:“应用程序/json”,
“内容类型”:“应用程序/json”,
},
}).那么(
(回应)=>{
setTotalPages(响应.数据.总页数);
setAllUsers(…allUsers,response.data.data);
},
(错误)=>{
console.log(错误)
}
).catch(函数(错误){
console.log(错误);
});
}
useffect(()=>{
console.log(当前页面);
getAllUsers(当前页面);
},[currentPage]);
让用户;
控制台日志(allUsers)
如果(allUsers.length>0){
user=alluser.map(user=>(
{user.id}
{user.first\u name+“”+user.last\u name}
));
}
//沉淀方程
让renderPageNumbers=未定义;
常量页码=[];
如果(totalPages!=null){
for(设i=1;i{
让classes=currentPage==number?“分页按钮激活”:“分页按钮”;
返回(
//getAllUsers(number)}>{number}
分页(数字)}>{number}
);
});
}
返回(
所有用户
身份证件
照片
名称
电子邮件地址
{user}
显示57个条目中的1到10个
paginate(1)}className=“paginate_按钮先前”>先前
{renderPageNumbers}
paginate(2)}className=“paginate_按钮下一步”>下一步
) } 导出默认仪表板;
判断API的行为我想到了这个


在react中使用
let
是不好的。因此,我使用
state
存储用户以供查看。并更改了
currentPage上的状态更改。

这是使用async Wait解决的,我刚刚更新了上述组件中的以下函数

const getAllUsers = async () => {
const headers = {
  method: 'GET',
  headers: {
    'Accept': 'application/json',
    'Content-Type': 'application/json',
  },
};
const response = await axios.get(`${base_url}/users?page=${currentPage}`,
  { headers }
);
const data = await response;
setTotalPages(data.data.total_pages);
setAllUsers(data.data.data)};

这看起来不对
setAllUsers(…allUsers,response.data.data)缺少方括号
setAllUsers([…allUsers,response.data.data])
此问题已通过使用async wait解决,请参阅下面链接中的更新函数
const getAllUsers = async () => {
const headers = {
  method: 'GET',
  headers: {
    'Accept': 'application/json',
    'Content-Type': 'application/json',
  },
};
const response = await axios.get(`${base_url}/users?page=${currentPage}`,
  { headers }
);
const data = await response;
setTotalPages(data.data.total_pages);
setAllUsers(data.data.data)};