React hooks 不能拿到最新的setState的值

在class中 想要拿到setState 最新的值 直接通过


this.setState({ currentIndex: '我就是最新的值啦啦啦啊'})

但是在 react hooks 中 setState 拿到的是上一次的缓存

---------- Capture Value 特性


 // 查询条件
  const onSearch = () => {
    let param = {
      list_type: currentIndex ------- 这里 取到上一次的值
    }

    props.getList(param)
  }

  const tabChoiced = (id) => {

    setCurrentIndex(id) ------ 这里设置最新值
    onSearch()
  }

解决办法

第一种 直接传进去

第二种

放在 useEffect 里传入 更新即调用


useEffect(()=>{

  setCurrentIndex(id)

},[id])

原文地址:https://www.cnblogs.com/ljh--/p/13942149.html