我有一个版本为17.0.2
和notistack@2.0.5
的React项目。现在,当我尝试导入snackbar提供程序并将其用作
import { SnackbarProvider } from 'notistack';
return <SnackbarProvider maxSnack={3}>
<AppRouter />
</SnackbarProvider>
其抛出以下错误,
'SnackbarProvider' cannot be used as a JSX component.
Its instance type 'SnackbarProvider' is not a valid JSX element.
The types returned by 'render()' are incompatible between these types.
Type 'React.ReactNode' is not assignable to type 'import("/Users/madukadilshan/Desktop/projects/sma-web/node_modules/@sm/common-ui/node_modules/@types/react/index").ReactNode'.
Type '{}' is not assignable to type 'ReactNode'.ts(2786)
import PerfectScrollbar from 'react-perfect-scrollbar';
也会发生相同的问题
软件包版本
- reactjs :
17.0.2
- 通知堆栈:
2.0.5
- React-完美-滚动条:
^1.5.8
- 通用软件包中React版本:
17.0.2
直到昨天它都运行得很好。今天我安装了一个我做的自定义组件包。最初我在通用UI包中使用了React 18。我想可能是因为这个问题。尝试将通用包中的react版本降级到v17并重新安装该包。(也尝试完全删除node_modules并重新安装所有模块)但错误仍然存在。
有人知道如何解决此问题吗?也尝试了this,但没有成功。
更新
在我将react v18更改为v17后,现在它显示了一个相同的错误,但使用了不同的第三方软件包,在通用用户界面中使用了react。
到目前为止我所尝试的,
使用any
类型(肯定不是我想做的)
import { SnackbarProvider } from 'notistack';
const SnackbarProviderX: any = SnackbarProvider;
return <SnackbarProviderX></SnackbarProviderX>
升级主项目中的React版本
升级主项目中的React v17 -〉v18,使其与通用包中的react版本v18匹配。这样做修复了问题,但引入了@mui
包的相同错误。修复一个包永远不会结束,从而引入另一个包。
那么,有没有什么适当的办法可以忽略这个问题呢?
1条答案
按热度按时间xytpbqjk1#
如果你仔细阅读npm包或git,你会发现:
这个月早些时候我也遇到了同样的麻烦,我知道这是一场斗争