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

用非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存一份吧,那也太麻烦了,有没有最佳实践之类的。

阅读 1.9k
1 个回答

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

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

也可以通过传参处理

 onTableChagne = (pagination)=>{
    setPagination(pagination);
    getList(pagination);
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题