gpt4 book ai didi

javascript - 更改 react 钩子(Hook)后如何执行函数?

转载 作者:行者123 更新时间:2023-12-02 21:12:13 25 4
gpt4 key购买 nike

当我在类组件中执行setState时,我可以将回调传递给最后一个参数,并在更改State后执行回调:

this.setState({}, () => { *execute after changing state* })

我的例子:

const foo = () => {
setOpen(false);
bar(); // this function should be performed after completion setOpen changing, but setOpen is async func
}

问题:如何通过setOpen完成钩子(Hook)更新后立即执行bar(),参数为false?

最佳答案

你会这样做:

const [ isOpen, setIsOpen ] = useState( false );

useEffect(() => {

if( !isOpen ) {

bar();

}

}, [ isOpen ]);

一旦检测到 isOpen 的更改,就会触发 useEffect Hook ,因为它列在 useEffect Hook 的依赖项中。

关于javascript - 更改 react 钩子(Hook)后如何执行函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61059352/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com