Reactjs 故事书中缺少MaterialUI表道具

Reactjs 故事书中缺少MaterialUI表道具,reactjs,typescript,material-ui,storybook,Reactjs,Typescript,Material Ui,Storybook,我正在使用MaterialUI,为了创建一个自定义库,我稍微修改了它(样式/逻辑)。我还使用Storybook(带有Typescript)创建文档 我面临的问题是,故事书表格道具并不总是自动生成的。它只显示了我添加的道具,但没有显示由material UI构建的道具。例如: import*as React from“React”; 从“@material ui/core/Paper”导入muipper; 从“clsx”导入clsx; 导出接口PaperProps扩展了MuiPaperProps{

我正在使用MaterialUI,为了创建一个自定义库,我稍微修改了它(样式/逻辑)。我还使用Storybook(带有Typescript)创建文档

我面临的问题是,故事书表格道具并不总是自动生成的。它只显示了我添加的道具,但没有显示由material UI构建的道具。例如:

import*as React from“React”;
从“@material ui/core/Paper”导入muipper;
从“clsx”导入clsx;
导出接口PaperProps扩展了MuiPaperProps{
/**
*如果'true',将应用较暗的背景。
*@default false
*/
填充?:布尔值;
/**
*如果“true”,则将删除纸张周围的边框。
*@default false
*/
禁用轮廓?:布尔值;
}
const useStyles=makeStyles((主题:主题)=>({
根目录:{
边界半径:“8px”,
边框:`1px solid${theme.palete.grey[200]}`,
“&$filled”:{
背景色:主题。调色板。灰色[100],
},
“&$disableOutline”:{
边界:“无”,
},
},
/*如果'disableOutline={true}',则应用于根元素的伪类*/
禁用大纲:{},
/*如果'filled={true}',则应用于根元素的伪类*/
填充:{},
}));
导出常量文件:React.FC=(道具)=>{
const{disableOutline=false,filled=false,…restProps}=props;
const classes=useStyles();
返回(
);
};
屏幕截图

另一方面,它与非常奇怪的MuiButton完美配合。我不明白为什么它不能和纸一起工作


好吧,我彻底地调试了它,发现typescript将docgen的
node\u模块
中的所有类型都排除在这个过滤器之外

propFilter:(prop)=>(prop.parent?!/node\u modules/.test(prop.parent.fileName):true),

但是,出于某种原因,可能是由于MuiButtonProps类型的编写方式,
prop.parent
对于MuiButton props是未定义的,并允许它们通过

由于您希望包含MaterialUI的所有道具,因此可以通过以下方式修改
.storybook/main.js
中的默认过滤器:

module.exports={
...
打字稿:{
检查:错误,
检查选项:{},
reactDocgen:“react docgen typescript”,
reactDocgenTypescriptOptions:{
应提取分形文字值RomeNum:true,
propFilter:(prop)=>{
返回prop.parent
?/@material ui/.test(prop.parent.fileName)||
!/node\u modules/.test(prop.parent.fileName)
:正确;
},
},
},
};

您的按钮是否有自己的界面,还是使用MuiButton导出的界面?可能与使用自己的接口相关,该接口是MuiButtonProps的扩展。D:有趣的是,我认为它对Button也不应该起作用,你能提供一个可复制的回购实例来进一步研究吗?这也将有助于在官方故事书的问题部分获得帮助。非常感谢您的努力,我尝试了这个,它似乎只在几个组件上起作用。例如,“Paper”或“LinearPropgress”自定义组件似乎没有在表中生成其他MaterialUI道具…@Skoltz您的意思是,即使使用配置,您仍然无法在表中获得Paper道具吗?因为我建立的回购协议运作良好