如何使 React 故事书“addon-links”发挥作用

Sai*_*ai 6 reactjs storybook storybook-addon-specifications

我正在尝试使用插件链接。我尝试了文档中列出的确切简单按钮示例,https://www.npmjs.com/package/@storybook/addon-links。LinkTo 反应组件工作正常,但当我使用 linkTo 函数时,我收到“无法导航到提供的故事”错误。有人可以帮我解决这个问题吗?

import React from "react";
import { linkTo } from '@storybook/addon-links';
import LinkTo from '@storybook/addon-links/react';

export default {
  title: 'Button',
};

export const first = () => (
  <button onClick={()=>{
    // debugger;
    linkTo('Button', 'second')
  }}>Go to "Second"</button>
);

export const second = () => (
  <button onClick={linkTo('Button', 'first')}>Go to "First"</button>
);
Run Code Online (Sandbox Code Playgroud)

小智 2

命名有一个棘手的部分。如果您为您的故事提供了storyName(从 Storybook 6.0 开始;以前是story.name),那么您应该将其作为函数调用的第二个参数传递linkTo。请参阅下面更复杂的示例:

import React from "react";
import { linkTo } from '@storybook/addon-links';

export default {
  title: 'Specs - v1/Button',
};

export const firstStory = () => (
  <button onClick={linkTo('Specs - v1/Button', 'Second story name')}>
    Go to "Second"
  </button>

);

export const second = () => (
  <button onClick={linkTo('Specs - v1/Button', 'firstStory')}>
    Go to "First"
  </button>
);
second.storyName = 'Second story name';
Run Code Online (Sandbox Code Playgroud)

另请注意“linkTo”调用返回一个新函数。因此,您不应该像示例中那样用匿名函数包装它:

// Wrong
<button onClick={() => linkTo('Button', 'second')}>
  Go to "Second"
</button>

// Correct
<button onClick={linkTo('Button', 'second')}>
  Go to "Second"
</button>
Run Code Online (Sandbox Code Playgroud)