storybook 插件文档:为加载器提供内联渲染支持

3hvapo4f  于 6个月前  发布在  其他
关注(0)|答案(6)|浏览(55)

#12699 为 CSF 添加了异步加载器,但加载的数据尚未与 Storybook Docs 内联渲染兼容。在添加此功能之前,加载的数据是未定义的。

qyzbxkaa

qyzbxkaa1#

你可以在故事的文档参数中添加inlineStories: false来绕过这个错误,然后声明一个新的源代码模板,以便在storybook中正确渲染代码。
示例:

const MyStory = {
	title: '',
	component: MyComponent,
	parameters: {
		docs: {
			inlineStories: false,
		}
	}
	loaders: [
		async () => ({
			configs: (await getConfigs()).data,
		}),
	],
}

export default MyStory

export const Default = (args, { loaded: { configs } }) => (
	<MyComponent {...args} {...configs} />
)

// this is what you will see on the Docs page.
const MyStoryCodeTemplate = (MyComponent) => `
<${MyComponent} {...props} />
`

Default.parameters = {
	docs: {
		source: {
			code: MyStoryCodeTemplate('MyComponent'),
		},
	},
}
dgjrabp2

dgjrabp22#

看起来#14911(提到这个问题)已经被合并了,但实际上并没有解决这个问题。

c0vxltue

c0vxltue3#

@MichaelAllenWarner 是的,它已经关闭了,而不是合并了。

s5a0g9ez

s5a0g9ez4#

Oops—我怪我的头感冒了。

bgibtngc

bgibtngc5#

是否仍然无法在文档中使用加载器?我遇到了这个问题,但这个问题已经相当老了。

kkih6yb8

kkih6yb86#

你可以在故事的文档参数中添加inlineStories: false来绕过这个错误,然后声明一个新的源代码模板,以便在storybook中正确渲染代码。例如:

const MyStory = {
title: '',
component: MyComponent,
parameters: {
docs: {
inlineStories: false,
}
}
loaders: [
async () => ({
configs: (await getConfigs()).data,
}),
],
}

export default MyStory

export const Default = (args, { loaded: { configs } }) => (
<MyComponent {...args} {...configs} />
)

// this is what you will see on the Docs page.
const MyStoryCodeTemplate = (MyComponent) => <${MyComponent} {...props} />

Default.parameters = {
docs: {
source: {
code: MyStoryCodeTemplate('MyComponent'),
},
},
}

感谢!这个版本的6.4.22对我有效。

相关问题