javascript - 如何将 Prop 传递给组件的故事?

标签 javascript vue.js storybook

我想为 vue-select 添加一些故事组件使用 Storybook ,但我正在努力处理更复杂的案例,其中涉及传递 Prop 或方法。

当我在模板内传递 Prop 时它起作用:

storiesOf('VSelect', module)
.add('with labeled custom options', () => ({
        components: {VSelect},
        template:   `<v-select :options='[{value: "CA", label: "Canada"}, {value: "UK", label: "United Kingdom"}]' />`
    }))

我发现它的可读性不是很好,所以我想将它们分别作为 props 或 data 传递:

.add('with labeled custom options as props', () => ({
        components: {VSelect},
        props:      {options: [{value: "CA", label: "Canada"}, {value: "UK", label: "United Kingdom"}]},
        data:       {options: [{value: "CA", label: "Canada"}, {value: "UK", label: "United Kingdom"}]},
        template:   `<v-select />`
    }))

但是 dataprops 都没有被 storybook 识别 - 它们似乎被忽略了。

最佳答案

我已经解决了。

.add('with labeled custom options as props', () => ({
        components: {VSelect},
        data() {
            return {
                options: [{value: "CA", label: "Canada"}, {value: "UK", label: "United Kingdom"}]
            }
        },
        template:   `<v-select :options="options" />`
    }))

我以前的方法有两个问题:

  • 传递的数据没有封装在函数中
  • 我应该只传递数据。 同时使用 propsdata 似乎会使 Vue 返回警告(数据属性“options”已声明为 prop。)并忽略传递的 data(尽管这只是警告而不是错误,我觉得这很奇怪)

关于javascript - 如何将 Prop 传递给组件的故事?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47077972/

相关文章:

javascript - Angular ng-options 删除空白选项并仅选择第一个选项

javascript - console.log 消息在执行实际任务之前出现

javascript - 如何在 Vue.js 中渲染 html 代码数组

javascript - Vue JS 2.0 子组件挂载回调

javascript - 解析beforeSave()云代码函数不起作用

javascript - 将 html anchor 更改为 markdown

css - Scss 样式不适用于 Vue 组件

reactjs - 升级到 Webpack 5 打破 Storybook 5

storybook - 如何获得Storybook控件插件的下拉列表?

javascript - 如何将 Storybook 配置为从项目根目录以外的目录运行