javascript - React 和 MaterialUI - GridLayout 使用论文

标签 javascript reactjs web material-ui

我正在使用react-grid-layout库创建一个自适应网格,其中每个项目都是来自react Material ui的纸质组件。

我在运行浏览器中收到的应用程序时遇到问题: “TypeError:react__WEBPACK_IMPORTED_MODULE_0___default.a.createContext不是一个函数” 在“./node_modules/@material-ui/styles/esm/useTheme/ThemeContext.js”模块下

我对 react 还很陌生,所以也许我做了一些非常愚蠢的事情,但我们将非常感谢您的帮助,因为我有点无能:)

主页组件是:

import { makeStyles } from '@material-ui/core/styles';
import Typography from '@material-ui/core/Typography';
import { withStyles } from '@material-ui/styles';
import { Paper } from 'material-ui';
import React from 'react';
import GridLayout from 'react-grid-layout';

const useStyles = makeStyles(theme => ({
    root: {
        padding: theme.spacing(3,2),
    },
}));

class Home extends React.Component {


    render() {
        var layout = [
            {i: 'a', x: 0, y: 0, w: 1, h: 2, static: true},
            {i: 'b', x: 1, y: 0, w: 3, h: 2, minW: 2, maxW: 4},
            {i: 'c', x: 4, y: 0, w: 1, h: 2}
        ];

        const { classes } = this.props;

        return (
            <GridLayout className="layout" layout={layout} cols={12} rowHeight={30} width={1200}>
                <Paper className={classes.root}>
                    <Typography key="a" variant="h5" component="h3">
                        This is a set of paper!
                    </Typography>
                </Paper>
                <Paper className={classes.root}>
                    <Typography key="b" variant="h5" component="h3">
                        This is a set of paper!
                    </Typography>
                </Paper>
                <Paper className={classes.root}>
                    <Typography key="c" variant="h5" component="h3">
                        This is a set of paper! 
                    </Typography>
                </Paper>
            </GridLayout>
        );
    }


    /* 
    <MapContainer latitude={31.97973975} longitude={34.74769792490634}/>
    */
}

export default withStyles(useStyles)(Home);

这是 App.js 文件:

import { MuiThemeProvider } from 'material-ui/styles';
import React from 'react';
import { BrowserRouter as Router, Route } from 'react-router-dom';
import './App.css';
import Home from './pages/Home';

class App extends React.Component {

    render() {
        return (
            <MuiThemeProvider>
                <Router>
                    <Route path="/" component={Home}/>
                </Router>
            </MuiThemeProvider>
        );
    }
}

export default App;

Package.json 依赖项

  "dependencies": {
    "@material-ui/core": "^4.7.0",
    "@material-ui/icons": "^4.5.1",
    "google-maps-react": "^2.0.2",
    "mobx": "^5.15.0",
    "prop-types": "^15.7.2",
    "react": "^15.1.0",
    "react-dom": "^15.1.0",
    "react-google-maps": "^9.4.5",
    "react-grid-layout": "^0.17.1",
    "react-router-dom": "^5.1.2",
    "react-scripts": "3.2.0"

谢谢您的提醒!

最佳答案

您可以在 Material-UI 文档 ( https://material-ui.com/getting-started/installation/#npm ) 中找到以下内容:

Please note that react >= 16.8.0 and react-dom >= 16.8.0 are peer dependencies.

Material-UI v4 依赖于 React hooks 和上下文——这两者都不在 React 15 中(在依赖项中显示)。

关于javascript - React 和 MaterialUI - GridLayout 使用论文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59103283/

相关文章:

javascript - 如何确保保存的点击坐标可以重新加载到同一个地方,即使页面布局发生变化?

node.js - 未捕获的类型错误 : Cannot call a class as a function React

javascript - TypeError : sentimentCurrent. map 不是一个函数?

javascript - 从 chrome 开发工具获取 CSS 作为 JavaScript 对象值

android - 部分手机浏览器水平滚动div渲染(主要是android 2.2)

javascript - 页面加载后的 Ajax 调用

php - 如何向 PHP 包含文件添加内容?

javascript - 页面完全加载后运行 javascript 自动滚动功能

javascript - 如何在 html Canvas 中围绕文本绘制矩形?

javascript - 在 reactjs 中渲染和类中的函数