Как динамически вставлять компонент в шаблон с помощью регуляторов Storybook
Я новичок в сборнике рассказов, пытаюсь создавать истории из простой кнопки и кнопки с иконками. Я хочу иметь возможность переключать значки на кнопке из раздела ручек. Например:
export const textButton = () => ({
components: { PButton },
template: `<p-button
:color="color"
:text="label"
/>`,
props: {
color: {
default: select(
"color",
["transparent", "black", "blue", "orange"],
"black"
)
},
label: { default: text("label", "Button") }
}
});
Выше рассказывается о простой кнопке, цвета которой я могу переключать из раздела ручек. Точно так же мне нужен правильный синтаксис для шаблона, чтобы я мог переключать значки внутри кнопки, которые являются отдельными компонентами.
export const textWithIcon = () => ({
components: { PButton, Arrow, Bullet, Check, Chevron, Cross, Delete, Edit, Info, Lock, Play, Plus, Search, UpDown, Upload },
template: `<p-button
:text="label"
:color="color"
>
<template v-slot:icon>{{icon}}</template>
</p-button>`,
props: {
icon: {
default: select('icon', ['<Arrow />', '<Bullet />', '<Check />', '<Chevron />', '<Cross />', '<Delete />', '<Edit />', '<Info />', '<Lock />', '<Play />', '<Plus />', '<Search />', '<UpDown />', '<Upload />'], '<Arrow />'),
},
label: { default: text('label', 'Button') },
},
});
Как мне этого добиться? какой правильный формат? Кто-нибудь, пожалуйста, направьте меня или отправьте ссылку на документы. Я не смог найти ничего, связанного с этим требованием.
1 ответ
Решение
Я решил это с помощью
<component v-bind:is="currentTabComponent"></component>
Поэтому мне пришлось просто передать строку имени компоненту, обязательно импортируя все компоненты.