You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular项目中Storybook无法渲染Kendo UI自定义元素问题求助

问题根因

你当前的Storybook配置中没有正确导入Kendo UI对应的Angular组件模块,仅添加CUSTOM_ELEMENTS_SCHEMA只会让Angular编译器忽略未知标签的报错,不会加载Kendo组件的实际逻辑,因此自定义标签无法渲染为可用组件。

解决步骤

  1. 在Story的模块配置中导入依赖的Kendo模块
    你用到了Kendo Grid和Kendo Button两个组件,需要先导入对应的模块,同时要引入Angular的动画模块(Kendo组件依赖该模块)。修改后的组件story文件参考如下:
import { HttpClientModule } from '@angular/common/http';
import { NgModule } from '@angular/core';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { RouterTestingModule } from '@angular/router/testing';
import { moduleMetadata } from '@storybook/angular';
import { Story, Meta } from '@storybook/angular/types-6-0';
// 导入Kendo对应模块
import { GridModule } from '@progress/kendo-angular-grid';
import { ButtonsModule } from '@progress/kendo-angular-buttons';
import DocumentsComponent from './documents.component';

export default {
  title: 'Components/Pages/Documents',
  component: DocumentsComponent,
  argTypes: {},
  decorators: [
    moduleMetadata({
      imports: [
        HttpClientModule, 
        RouterTestingModule,
        BrowserAnimationsModule,
        // 加入Kendo依赖模块
        GridModule,
        ButtonsModule
      ],
      // 可以移除CUSTOM_ELEMENTS_SCHEMA了,不需要用它规避报错
    }),
  ],
} as Meta;

const Template: Story<DocumentsComponent> = (args: DocumentsComponent) => ({
  props: args,
});

export const DocumentsList = Template.bind({});
  1. 全局导入Kendo主题样式
    如果组件渲染后样式异常,需要在.storybook/preview.js文件顶部导入Kendo的主题样式:
import '@progress/kendo-theme-default/dist/all.css';

export const parameters = {
  actions: { argTypesRegex: "^on[A-Z].*" },
  controls: {
    matchers: {
      color: /(background|color)$/i,
      date: /Date$/,
    },
  },
}
  1. 全局配置优化(可选)
    如果有多个Story都用到Kendo组件,可以直接在.storybook/preview.js中配置全局的moduleMetadata,不需要每个Story重复导入Kendo模块:
import { moduleMetadata } from '@storybook/angular';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { GridModule } from '@progress/kendo-angular-grid';
import { ButtonsModule } from '@progress/kendo-angular-buttons';
import '@progress/kendo-theme-default/dist/all.css';

export const decorators = [
  moduleMetadata({
    imports: [BrowserAnimationsModule, GridModule, ButtonsModule],
  }),
];

export const parameters = {
  // 原有配置保持不变
}

完成以上配置后重启Storybook即可正常渲染Kendo组件。


内容的提问来源于stack exchange,提问作者Logan Shoemaker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 14:18:00