React hooks,使用useState改变了state后,子组件调用父组件的,state仍是旧值

发布于 2022-09-12 02:24:17 字数 347 浏览 20 评论 0

如下图,父组件中调用playOrStop将startAudio变为true后,子组件再调用playOrStop这个方法,console出的startAudio仍为false。如果先在子组件中调用再在父组件中调用没问题,或者前后两次都在父组件中调用也没问题,求大神指点迷津。
image.png
子组件
image.png
console
image.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

吾家有女初长成 2022-09-19 02:24:17
let [startAudio,setStartAudio] = useState(false);
  • 对通过setStartAudio来更新state是异步的,非同步。所以在调用方法后看到的就是旧值
  • 可通过 useEffec来checek值的变化
  • 回调函数最好通过useCallback Hook来缓存,避免子组件的不必要渲染
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文