【问题标题】:How to use function containing setState synchronously如何同步使用包含 setState 的函数
【发布时间】:2021-12-04 21:15:50
【问题描述】:

我想同步使用一个包含 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() 中的状态执行一些函数。

状态是异步处理的。

请提供任何建议/帮助

【问题讨论】:

    标签: reactjs asynchronous async-await


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-23
      • 2018-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多