Select/Menu 组件: Typeahead 在生产环境中会发生断点: build 会将 `/* @__PURE__ */` 注入到仅具有副作用的 IIFE 中,而 SWC 会消除此注入
□ 错误报告
目前的行为
使用TypeaheadSearch ' 内部的更新的Search ' IIFE在已公布的分文档案*中附加了`/ @ PURE */'的说明。 注释是不正确的——仅仅因为其副作用而引用了这个调用,而其回取值被丢弃——所以一个尊重注释的修饰符会删除整个调用.
结果,`Search Ref.current. ' 从未写过**。 它在元件的一生中保持"''",它以三种方式打破了打字头:
- ** 多特征搜索从未累积。 ** 每个按键压都发出新的单字符搜索.
- ** 1秒重置定时器从未存在**,因此`定时参考文件'从未设定。
- `Search Ref.cent. since. ==============================================================================
导致我们来到这里的用户可见的症状是:在 " 植物学 " 、 " Brats " 、 " Bbt " 、打入 " g " 、 " g " 、 " g " 、 " g " (或任何重复的字符)等选项下,将注意力集中在生产中每个按键的next匹配选项上,而在开发中,搜索则会累积。 同样的应用程序,相同的Radix版本,相同的浏览器——只有构建不同.
这是沉默:没有错误,也没有警告。 它只在精密的生产建筑中再生,因此单元测试和dev服务器都无法捕捉到.
受影响的已出版软件包
通过将已发运的dist/index.mjs'复制为(/ * QQPURE */ name(功能 <name X)-附加说明的IIFE用于副作用来验证:
QQ 软件包 QQ版本 函数 QQ | -- -- -- -- -- -- -- -- -- -- -- -- -- =================================================================================================================================================================================== ====================================================================================================== (==================================================================================== =============================================================================================================================================================================================================;
" 反应菜单 " 是 " Dropdown Menu " 、 " Context Menu " 和 " Menubar " 背后的共同执行,因此,这些人继承了同一个被打碎的型号。
" 反应-卷轴-领域 " 是三个领域中最严重的。 附加说明的IIFE是`请示动画Frame ' 投票循环:
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你来干什么? /@radex-ui/ [email protected] dist/index.mjs:707 (英语). (/ * QQPURE * / 名 (( 函数环 ()) { 折叠位置={左:节点.scrollLeft,上:节点.scrollTop}; . . . . . . . . RAF = 窗口。 request AnimationFrame( loop); )),"出"("出");
当那个电话被调用时,循环永远不会开始,所以卷轴处理器从不开火.
### 注释由您的构件注入,而非作者
这一点值得强调,因为来源是正确的。 在`包装/反应/选择/src/select.tsx'中,国际家庭教育研究所**没有**注释:
(函数更新Search( 值: 字符串) {
参考文献:当前值;
窗口。 clearTimeout(timr Ref.xin);
如果( 值 : == '' ) 计时器 Ref.curent= window. setTimeout( () = * * 更新Search('), 1000);
(搜索);在select.tsx ' 中发生的所有20起/* @ PURE */ ' 案件都坐着`Resact.forward Ref(.) ' 电话,这是正当的。 取自已发运的 " dist/index.mjs.map " 的 " source Content " 。
发生的事情是,Esbuild的"-keep-name"包装 . . . . . . .
内容来源: radix-ui/primitives