首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vue Storybook动态故事

Vue Storybook动态故事
EN

Stack Overflow用户
提问于 2020-10-08 22:15:46
回答 1查看 571关注 0票数 0

我正在使用Storybook列出项目中的所有图标。图标列表在下拉列表中使用。我需要加载SVG图标来解析成<van-icon />组件。

我下面的代码正确地加载了一个图标,但问题是,当您更改下拉列表中的值时,组件不会更新。

对于我在这里尝试的东西,有没有更好的解决方案?似乎在Storybook文档中没有用于创建动态storybook组件的任何内容。也许我可以用createcomponent手动创建一个加载图标的组件?

代码语言:javascript
复制
import Icons from './index';

export default {
  title: 'Components/Icon',
  argTypes: {
    size: {
      control: { type: 'range', min: 10, max: 500 },
      defaultValue: 50,
    },
    name: {
      control: { type: 'select', options: Icons },
      defaultValue: Icons[0],
    },
  },
};

const Template = (args, { argTypes }) => ({
  props: Object.keys(argTypes),
  template: `<van-icon v-bind="$props" :name="getIcon()" />`,
  methods: {
    getIcon() {
      return args.name ? require(`../../assets/icons/${args.name}.svg`) : '';
    },
  },
});

export const Default = Template.bind({});
EN

回答 1

Stack Overflow用户

发布于 2020-11-17 19:58:02

我有一个类似的问题,我没有正确绑定道具。我在这里发布我的代码可能会有帮助:

代码语言:javascript
复制
import DragIconComponent from "../components/DragIcon.vue";

const argTypes = {
  backgroundColor: { control: "color" },
};

export default {
  title: "Drag Icon",
  argTypes,
};

export const DragIcon = () => ({
  components: { DragIconComponent },
  props: { ...argTypes },
  template: `<div class="some-class">
      <DragIconComponent :mainColor="backgroundColor" />
    </div>`,
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64264451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档