故事书MDX:动态元标题

时间:2020-03-02 19:49:12

标签: reactjs storybook

如何在Markdown扩展title文件中的故事书Meta组件上设置动态*.stories.mdx属性?

import { Meta } from '@storybook/addon-docs/blocks';

// displays title as 'undefined' in sidebar nav
<Meta title={conditionalValue ? 'foo' : 'bar'} />

我还尝试将Meta包装在高阶组件中,这会引发错误:Unexpected default export without title

import { Meta } from '@storybook/addon-docs/blocks';

export const MetaCustom = (props) => {
  const title = conditionalValue ? props.foo : props.bar;
  return <Meta title={title} />;
};

// mdx stories file
<MetaCustom foo="foo" bar="bar" />

1 个答案:

答案 0 :(得分:2)

我尝试创建一个util函数并将其导入到mdx中,好像它正在工作。

utils.js

export function generateTitle (condition) {
   return condition ? 'foo' : 'bar'
}

Component.stories.mdx

import { generateTitle } from './utils.js';

    <Meta
      title={generateTitle(true)}
    />

希望有帮助!