react-hook-setState什么时候可以拿到更新后的值

发布于 2022-09-13 00:58:25 字数 785 浏览 12 评论 0

用非hook写法

class Demo extends React.Component{

  constructor(){
    this.state={
      pagination:{pageSize:10, current:1}
    }
  }
  
  onTableChange = (pagination)=>{
    this.setState({pagination}, this.getList)
  }
  
  getList = ()=>{
    const {pagination} = this.state;
    queryList(pagination).then((res)=>{
      console.log('res...',res);
    })
  }
}

但是用hooks写法

const Demo = ()=>{
  const [pagination ,setPagination] = useState({pageSize:10, current: 1});
  
  onTableChagne = (pagination)=>{
    setPagination(pagination);
    getList();
  }
  
  getList = ()=>{
    //  这里的pagination还没变
    queryList(pagination).then();
  }
}

类似的这样的场景,hooks要怎么处理?不用每次state都要用useRef存一份吧,那也太麻烦了,有没有最佳实践之类的。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

久光 2022-09-20 00:58:25

可以用useEffect处理,但有个小问题假设出现需要更新pagination但是不发请求的时候可能需要新增一个标识字段来处理

useEffect(() => {
 getList()
},[pagination])

也可以通过传参处理

 onTableChagne = (pagination)=>{
    setPagination(pagination);
    getList(pagination);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文