import Vue from 'vue';
// ... some imports and global setup
export const normalError = () => ({
components: { 'error-modal': ErrorModal },
template: `<error-modal @hook:mounted='externalMount'/>`, // bind the custom method on mounted hook
methods: { // bind the new method to the component
async externalMount() { // don't use an arrow function or this will have wrong scope
const anyThis: any = this;
const vm = anyThis.$children[0]; // target the component ErrorModal
await Vue.nextTick(); // wait that mounted() finished
vm.showDialog(true); // finally show the modal / call the method !
}
}
});
4条答案
按热度按时间xmd2e60i1#
以下是使用Typescript和component story format of storybook (version 5.2+)的棘手解决方案:
如果你找到一个更好的,我会很高兴知道和投票。
h9a6wy2h2#
这是我们使用StoryBook 6.1的项目中的一个示例。它在组件被挂载后执行代码
Vue(x)组件
我想在故事书中的打字脚本支持甚至更多(也许有人可以添加一个答案)。
xmjla07d3#
下面是我如何解决它的(在
mdx
中,应该有一个等价的CSF)vuv7lop34#
因为Vue 3已经删除了$children属性,现在需要使用refs来代替。