本文介绍了Material-UI 5数据网格样式不在组件之间隔离的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我刚刚从Material-UIv4升级到v5(现在是MUI)。如果我有一个DataGrid
组件和一个类似Select
组件的组件(MenuItem
也有问题),Select
组件将无法正常工作。DataGrid
加载的某些附加样式会干扰它。
DataGrid
有意为空。与预期功能相反,如下所示:
我已将代码放在CodeSandbox
请注意,"@mui/x-data-grid": "^4.0.0"
依赖于"@material-ui/core": "^4.12.3"
。我对此感到不舒服,但它确实将其列为依赖项(除非我在哪里遗漏了什么)。我是否遗漏了什么,或者我正在使用的最新版本的DataGrid
中是否存在错误?顺便说一句,我的实际应用程序中的所有DataGrid
功能都工作得很好。
为完整起见,我还将在此处包括代码:
import React from "react";
import { render } from "react-dom";
import { DataGrid } from "@mui/x-data-grid";
import Select from "@mui/material/Select";
import MenuItem from "@mui/material/MenuItem";
function App() {
return (
<div>
<Select>
<MenuItem value={10}>Ten</MenuItem>
<MenuItem value={20}>Twenty</MenuItem>
<MenuItem value={30}>Thirty</MenuItem>
</Select>
{/* with DataGrid, Select will shown options on one line */}
{/* comment out DataGrid and the select will work */}
<DataGrid rows={[]} columns={[]} />
</div>
);
}
render(<App />, document.querySelector("#root"));
Package.json文件为:
{
"name": "mui-datagrid-isolation-issue",
"version": "5.0.0",
"description": "",
"keywords": [],
"main": "index.js",
"dependencies": {
"@emotion/react": "latest",
"@emotion/styled": "latest",
"@mui/material": "^5.0.1",
"@mui/styles": "^5.0.1",
"@mui/x-data-grid": "^4.0.0",
"@material-ui/core": "^4.12.3",
"react": "latest",
"react-dom": "latest"
}
}
推荐答案
您使用的是v4@mui/x-data-grid
,而mui组件是使用情感的v5。旧版本的JSS样式overrides导致意外结果的情感样式。
若要修复此问题,请安装@mui/x-data-grid
的下一个版本(V5),以便它可以与MUI v5兼容,并同时删除package.json
中的@material-ui/core
v4。
npm install @mui/x-data-grid@next
您始终可以查看docs演示中的package.json文件,了解工作项目的外观。
这篇关于Material-UI 5数据网格样式不在组件之间隔离的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!