重复问题
- 我搜索了现有的问题
最新版本
- 我测试了最新版本
重现步骤 🕹
链接到实时示例: https://codesandbox.io/s/charming-microservice-imyon7?file=/src/App.tsx
步骤:
- 增加和减少窗口宽度,以便在控制台中正确查看媒体查询的更新
- 将屏幕调整为大于600px的宽度并按下按钮,这将触发if语句并更新isActive的状态
- 现在尝试调整窗口宽度在600px以上和以下的大小
当前行为 😯
组件仅在窗口大小调整时重新渲染,当媒体查询不匹配时
预期行为 🤔
我希望组件在媒体查询匹配时也重新渲染
上下文 🔦
- 无响应*
你的环境 🌎
- 无响应*
9条答案
按热度按时间cfh9epnr1#
我没有看到错误,它似乎表现正常。它哪里不正确?你有录音吗?
ttygqcqt2#
希望这个视频能帮助到你:
Screen.Recording.2023-02-14.at.14.41.14.mov
你看到组件在按钮被按下后没有重新渲染吗?
uhry853o3#
我无法复现这个问题。@pavsidhu,你能分享一下你的环境详情吗?
5hcedyr04#
当然,示例中使用的浏览器是运行在M1 Macbook Pro Ventura 13.0.1上的Microsoft Edge Version 110。
64jmpszr5#
我无法在Edge(版本111)上复现这个问题,但在Safari上发生过一次。尽管如此,我无法重复这个现象。似乎某个地方存在一个微妙的bug。
vfwfrxfs6#
步骤:
对于这些步骤,我无法重现问题。但是我可以按照给定视频中的步骤重现问题。
步骤:
这应该是
useSyncExternalStore
的问题。通过调试给定的示例,我找到了一些东西。最后,我发现这个问题已经在Fix useSyncExternalStore dropped update when the state is dispatched in render phase but hasn't been released to the latest stable version中修复了。所以也许需要等待下一个React稳定版本?PS:我只更改了React版本到
18.3.0-next-d49e0e0be-20230302
,它运行得很好,参见修订后的example。v64noz0r7#
感谢您进行调查。让我们等待18.3版本,然后再做进一步的讨论。我将其标记为"外部依赖"。
dluptydi8#
+1
9njqaruj9#
这个问题在18.3.1版本中没有得到解决,但在18.3.0的金丝雀版本中已经修复。有人知道是否还有另一个React 18版本即将发布吗?