storybook 数据中的循环引用失败应该是正常的

w51jfk4q  于 2022-10-29  发布在  其他
关注(0)|答案(3)|浏览(176)

描述Bug

当我导航到画布时,页面变为空白。
这是我在浏览器控制台中看到的内容(我不认为堆栈跟踪有用,但错误消息可能有用):

重现

重现该行为的步骤:
1.挑选您所选择的组件和框架
1.如果您通常将参数x提供给组件,只需设置x.randomProperty = x即可。选择randomProperty时,应确保它不会干扰组件的合法操作。
1.试着在故事书中看到它

预期行为

组件呈现。可能数据的JSON无法呈现,表示“无法将数据转换为json”。

屏幕截图

屏幕完全空白。

程式码片段

我希望bug复制说明足够

系统

Binaries:
    Node: 10.19.0 - /usr/bin/node
    npm: 6.14.4 - /usr/bin/npm
  Browsers:
    Chrome: 87.0.4280.66
    Firefox: 83.0
  npmPackages:
    @storybook/addon-actions: ^6.1.17 => 6.1.17
    @storybook/addon-essentials: ^6.1.17 => 6.1.17
    @storybook/addon-links: ^6.1.17 => 6.1.17
    @storybook/angular: ^6.1.17 => 6.1.17

注意:我实际上是在使用firefox86.0b7的时候遇到这个问题的。

其他上下文

如果需要,请询问

wmvff8tz

wmvff8tz1#

Bump.我认为通过处理抛出的错误应该很容易修复。
与此同时,我不得不临时修改这个参数的.toJSON值。

arg.toJSON = () => "unavailable";
weylhg0b

weylhg0b2#

一个相关的问题是,尽管有上述黑客(这只是防止故事书死亡,甚至在它有机会渲染和显示的故事),我仍然得到成千上万的以下在我的控制台:

We've detected a cycle in arg '<arg-name>'. Args should be JSON-serializable (-ish, functions are ok).

这种深度循环数据的日志记录会对初始加载时间产生非常不利的影响。

jv4diomz

jv4diomz3#

一个相关的问题是,尽管有上述黑客(这只是防止故事书死亡,甚至在它有机会渲染和显示的故事),我仍然得到成千上万的以下在我的控制台:
我也有同样的问题(事实上更糟)。
我有一个实现toJSON方法的类,当我使用它的示例作为story arg时,最初大约有1000条消息被记录,延迟了初始加载。
事情变得更糟时,一个作出改变的故事:数千条“不可序列化”的消息被记录在循环中,使得浏览器没有响应(参见下面的视频-它在34000条消息时停止),需要刷新或终止浏览器。
由于#17101的原因,目前我被困在了storybook 6.3.8中。希望我能有时间找到一个解决方法并测试storybook 6.5
storybook-serialize.mp4

相关问题