描述bug
这实际上是 storybookjs/testing-react#4 的回归,影响了迁移到使用 @storybook/react 的用户。
重现问题
- 无响应*
系统信息
npmPackages:
@storybook/addon-a11y: ^7.0.0-alpha.54 => 7.0.0-alpha.54
@storybook/addon-actions: ^7.0.0-alpha.54 => 7.0.0-alpha.54
@storybook/addon-docs: ^7.0.0-alpha.54 => 7.0.0-alpha.54
@storybook/addon-essentials: ^7.0.0-alpha.54 => 7.0.0-alpha.54
@storybook/addon-links: ^7.0.0-alpha.54 => 7.0.0-alpha.54
@storybook/addon-storysource: ^7.0.0-alpha.54 => 7.0.0-alpha.54
@storybook/node-logger: ^7.0.0-alpha.54 => 7.0.0-alpha.54
@storybook/react-vite: 7.0.0-alpha.54 => 7.0.0-alpha.54
其他上下文
您可以像解决 storybookjs/testing-react#4 一样解决此问题,并使用 composeStory
可能的修复方案
我还没有完全测试过这个,我的 TypeScript 知识也不太好,但对我来说问题在于 Store_CSFExports 类型中的 Args 的使用。
storybook/code/lib/types/src/modules/composedStory.ts
第19行至第23行的代码:
| | exporttypeStore_CSFExports<TRendererextendsRenderer=Renderer>={ |
| | default: ComponentAnnotations<TRenderer,Args>; |
| | __esModule?: boolean; |
| | __namedExportsOrder?: string[]; |
| | }; |
也许修复方法是允许在这里将 Args 作为泛型:
type Store_CSFExports<TRenderer extends Renderer = Renderer, TArgs extends Args = Args> = {
default: ComponentAnnotations<TRenderer, TArgs>;
__esModule?: boolean;
__namedExportsOrder?: string[];
};
并更新 composeStories 为:
function composeStories<TModule extends Store_CSFExports<ReactRenderer, ComponentProps>>(
csfExports: TModule,
projectAnnotations?: ProjectAnnotations<ReactRenderer>
)
但不确定这会产生什么影响
9条答案
按热度按时间ymzxtsji1#
@kasperpeulen ,我们有时间可以看一下这个吗?
zengzsys2#
听起来不错!
gojuced73#
大家好,这不应该被添加到https://github.com/orgs/storybookjs/projects/8/views/1中吗?
我认为这应该成为7.0版本的阻止因素,否则我们所有使用
.play
和composeStories
的人都会有破坏性的经验。ktecyv1j4#
我们将致力于改进
composeStories
,作为7.1的一部分。j13ufse25#
我们最近不是已经解决了这个问题吗?
xfb7svmp6#
这对我来说已经不是问题了。
它可能已经在 7aa0042 上修复了。
mbzjlibv7#
感谢确认@csantos1113!cc @yannbf
nxowjjhe8#
当使用装饰器时,此问题仍然存在,版本为8.0.8
Hello.tsx
Hello.stories.tsx
Hello.test.tsx
这在Hello.test.tsx中抛出错误。
当将Hello.tsx中的prop更改为非必需时,错误消失。
ssgvzors9#
CC @kasperpeulen