reactjs 无法读取未定义(阅读'direction')React JS物料表的属性

carvr3hs  于 2022-11-29  发布在  React
关注(0)|答案(5)|浏览(118)

使用React JS安装Material Table并将数据Map到其中后,在运行应用程序时会在控制台上显示此错误,原因让我很难想象。
x1c 0d1x

下面是我开发的表格。
`
常量雇佣列表= [ { id:1、姓名:“Neeraj”,邮箱:“neeraj@gmail.com”,电话:9876543210,城市:“班加罗尔”},{ id:2、姓名:“Raj”,邮箱:“raj@gmail.com”,电话:9812345678,城市:“钦奈”},{ id:3、姓名:“大卫”,邮箱:“david342@gmail.com”,联系电话:7896536289,城市:“斋浦尔”},{ id:4、姓名:“维卡斯”,邮箱:“vikas75@gmail.com”,电话:9087654321,城市:“海得拉巴”},]

const [data, setData] = useState(empList)

const columns = [
    { title: "ID", field: "id", editable: false },
    { title: "Name", field: "name" },
    { title: "Email", field: "email" },
    { title: "Phone Number", field: 'phone', },
    { title: "City", field: "city", }
]

            
                <h5>
                    List of Services
                </h5>
            
            <MaterialTable
                title="Employee Data"
                data={data}
                columns={columns}
            />

        </div>`
ggazkfy8

ggazkfy81#

所以我想出了解决办法。如果你的材料表的当前版本是2.0.3,只要卸载你的版本,重新安装1.69.3版本。这将解决问题,它为我工作。他们已经发布了2.0.3版本相当近(10天前),它似乎有错误,我想这就是为什么你和我面临的问题。

bq3bfh9z

bq3bfh9z2#

我尝试了所有可能的方法,但似乎材料表包本身有问题。我也尝试安装v1.69.3,但随后它显示了大约19个错误,所有这些错误都来自于Metrial-Table包,这表明它真的有问题。对于其他一些版本,它显示了大约20个错误,所有这些错误都来自于包本身。这些错误在我重新安装了@material-ui/core之后就消失了,就像他们的网站上提到的那样https://material-table.com/#/docs/install:~:text=npm%20install%20material%2Dtable%20%2D%2Dsave%0Anpm%20install%20%40material%2Dui/core%20%2D%2Dsave,但是表不显示的问题仍然存在。x1c 0d1x
最后安装了一个非常旧的版本,它依赖于16版以上的react版本,这对我很有帮助。你可以运行:

npm uninstall material-table

然后运行以下命令:

npm install material-table@1.36.0 --save

然后检查它是否工作,如果不工作则尝试运行

npm install @material-ui/core --save


npm install在终端。我希望它将为您工作,以帮助您开始运行,但我注意到,虽然表显示,但它扰乱了一些功能的材料ui本身。

x9ybnkn6

x9ybnkn63#

所以我在一些PC上遇到了同样的问题,而在其他PC上没有。我发现这个问题是由于 NodeJS 版本造成的。所以下面的方法对我很有效:

  • 将material-table版本更改为1.69.31.36.0是可行的,但它会打乱我的其他mui组件的样式。因此,移回material-table 2.0.3
  • 我使用的是节点版本14.19.0,因此使用nvm将其更改为16.5.1
  • 完全删除节点模块shift+ delete
  • npm i以安装所有依赖项。(请记住,在此步骤中,节点版本应为16.5,因此使用node -v检查一次)
  • npm start
iqjalb3h

iqjalb3h4#

我更新了mui的软件包,使用:
yarn upgrade @mui/icons-material @mui/material @mui/styles --latest,因为我使用的是表2.0.2中的材料。
那么不要忘记用ThemeProvider Package 表:(感谢@nikried的回答,非常有帮助!)

import * as React from 'react';

import MaterialTable from 'material-table';

import { ThemeProvider, createTheme } from '@mui/material';

export function SimpleExample () {
        const defaultMaterialTheme = createTheme();

        return(
            <div style={{ width: '100%', height: '100%' }}>
                <ThemeProvider theme={defaultMaterialTheme}>
                    <MaterialTable
                        columns={columns}
                        data={data}
                    />
                </ThemeProvider>
            </div>
        );
    }
}

如果您有其他问题,不要忘记检查node_modules内部的material-table的peerDependencies,并尝试使用上面提到的同一个包的版本,以避免所有可能的冲突。

tjrkku2a

tjrkku2a5#

我也遇到过同样的bug,似乎他们没有涉及到没有提供主题的情况。所以,为了让MaterialTable正常工作,你至少需要以下实现:

import * as React from 'react';
import MaterialTable from 'material-table';
import { ThemeProvider, createTheme } from '@mui/material';

export class DataGridReact extends React.Component {
    public render(): JSX.Element {
        const defaultMaterialTheme = createTheme();

        return(
            <div style={{ width: '100%', height: '100%' }}>
                <link
                    rel="stylesheet"
                    href="https://fonts.googleapis.com/icon?family=Material+Icons"
                    />
                <ThemeProvider theme={defaultMaterialTheme}>
                    <MaterialTable
                        columns={[
                        { title: 'Name', field: 'name' },
                        { title: 'Surname', field: 'surname' },
                        { title: 'Birth Year', field: 'birthYear', type: 'numeric' },
                        { title: 'Birth City', field: 'birthCity', lookup: { 1: 'Linz', 2: 'Vöcklabruck', 3: 'Salzburg' } }
                        ]}
                        data={[
                            { name: 'Max', surname: 'Mustermann', birthYear: 1987, birthCity: 1 },
                            { name: 'Cindy', surname: 'Musterfrau', birthYear: 1995, birthCity: 2 }
                        ]}
                        title="Personen"
                    />
                </ThemeProvider>
            </div>
        );
    }
}

相关问题