无法在Visual Studio C#ASP内的React应用程序上使用Material-UI NET核心Web应用程序

问题描述

我已经使用React和Redux模板创建了一个新的.NET Core Web应用程序。一切正常,但当我在ClientApp文件夹中安装Material-UI库(具有react项目的人)并从该库导入组件时,该应用会引发下一个错误

Config config = new Config();
config.useSingleServer().setAddress("redis://" + redisProperties.getHost() + ":" + redisProperties.getPort());
RedissonClient redisson = Redisson.create(config);
redisson.getKeys().flushdb();
redisson.shutdown();

我的package.json看起来像这样:

TypeError: __WEBPACK_IMPORTED_MODULE_0_react___default.a.createContext is not a function

我要从中导入Material UI Button的组件如下所示:

{
  "name": "Evento","version": "0.1.0","private": true,"dependencies": {
    "@material-ui/core": "^4.11.0","bootstrap": "^3.4.1","react": "^16.0.0","react-bootstrap": "^0.31.5","react-dom": "^16.0.0","react-redux": "^5.0.6","react-router-bootstrap": "^0.24.4","react-router-dom": "^4.2.2","react-router-redux": "^5.0.0-alpha.8","react-scripts": "1.0.17","redux": "^3.7.2","redux-thunk": "^2.2.0","rimraf": "^2.6.2"
  },"scripts": {
    "start": "rimraf ./build && react-scripts start","build": "react-scripts build","test": "react-scripts test --env=jsdom","eject": "react-scripts eject"
  }
}

为什么会发生这种情况,我该怎么解决

解决方法

您需要更新React。对于Material UI 4.11,v16.0.0太旧了。您应该将React和React DOM至少更新为16.8.0:

npm update react react-dom

确保稍后重新启动应用程序,以便Webpack可以重新捆绑新版本。