首页 > 解决方案 > 如何同步使用包含 setState 的函数

问题描述

我想同步使用包含 setState() 的函数

但是,它不起作用

这是我的代码

const [state, setState] = useState(false)

function handlerChange(someValue) {
  //validate value and that result set state
  const isValid = REGEXP.test(someValue)
  setState(isValid)
}
async function checkValue() {
  await handlerChange()
}
function handlerClick() {
  checkValue().then(()=>{
    if(state){
    //some function
  }})
}

上面的代码很多地方都省略了,

但是,要点是我想根据 handlerClick() 中的状态执行一些函数。

状态是异步处理的。

请任何建议/帮助

标签: reactjsasynchronousasync-await

解决方案


您可以将 useEffect 与 state 参数一起使用,因为 useState 不提供任何回调,例如 setState Ex:

useEffect(() => {
console.log('Do something after state has changed', state);
}, [state])

或者您可以为此使用自定义挂钩。


推荐阅读