用我的库包装 MUI 返回错误

Posted

技术标签:

【中文标题】用我的库包装 MUI 返回错误【英文标题】:Wrapping MUI with my library returns error 【发布时间】:2022-01-21 23:56:16 【问题描述】:

我想构建一个包装 MUI 的库。 我用这段代码创建了一个按钮:

import React,  ReactNode  from 'react'
import Button from '@mui/material/Button';

import './Button.css'

export interface ButtonProps 
    color: "inherit" | "primary" | "secondary" | "success" | "error" | "info" | "warning" | undefined;
    children: ReactNode;
    size: "small" | "medium" | "large" | undefined;
    variant: "text" | "contained" | "outlined" | undefined;


const IButton = (props: ButtonProps) => 
    console.log(props)
    return <Button ...props>props.children</Button>


export default IButton

此代码在 storybook 中运行,但是当我将它导入我的 App 项目时,我收到此错误:

我认为我有多个 react 副本,这会导致错误。 我尝试使用以下方法修复它:

peerDependencies: 
        react: "17.0.2"

但这并没有帮助。

这是我的应用程序“npm ls react”

感谢您的帮助!

【问题讨论】:

【参考方案1】:

你有多个 reactjs, 尝试删除 node_modules 中的 reactjs,然后运行:npm install, 然后重新启动服务器,这将使用您库中的组件。

【讨论】:

得到同样的错误:\ 您是否将您的库链接到您的应用项目?在您的库文件夹中,然后打开一个终端: >sudo npm link >npm run compile 在您的 App 项目文件夹中,在终端中:>npm link libraryName 或者您可能只删除了 reactjs 模块,但您必须删除 Material-ui 模块也是。 谢谢,购买 我没有正确使用 peerDependencies...我没有从 devDependencies 中删除它...如果我发布并 npm install 包,它可以正常工作。现在我试图弄清楚如何使它与 npm link 一起工作:)

以上是关于用我的库包装 MUI 返回错误的主要内容,如果未能解决你的问题,请参考以下文章

解决mui错误:Unable to preventDefault inside passive event listener due to target being treated as passiv

Xcode 返回链接器错误“找不到 -lFirebaseAuth 的库”

Boost Python 包装的虚拟类子返回错误:与 C++ 签名不匹配

装饰器不支持函数调用,而 ng build --prod (AOT)

为啥我的 Axios 实例没有在捕获的错误中返回响应?

mui中调用ajax时报abort错误