Как заставить React Storybook 'addon-links' работать
Я пытаюсь использовать дополнительные ссылки. Я попробовал точный пример простой кнопки, указанный в документации https://www.npmjs.com/package/@storybook/addon-links. Компонент LinkTo react работает нормально, но когда я использую функцию 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>
);
1 ответ
Есть сложная часть с именованием. Если вы предоставите
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';
Также обратите внимание, что вызов linkTo возвращает новую функцию. Поэтому вы не должны оборачивать его анонимной функцией, как вы это сделали в примере:
// Wrong
<button onClick={() => linkTo('Button', 'second')}>
Go to "Second"
</button>
// Correct
<button onClick={linkTo('Button', 'second')}>
Go to "Second"
</button>