【问题标题】:Use Create-React-App with Material UI将 Create-React-App 与 Material UI 一起使用
【发布时间】:2017-10-26 19:35:45
【问题描述】:

我是 Material UI 和 ReactJS 的新手。我一直在玩Create-React-App (CRA)reactstrap。 我的问题是,我可以同时使用 Material UI 和 CRA 来构建一个应用程序吗?

【问题讨论】:

    标签: reactjs material-ui create-react-app


    【解决方案1】:

    先安装material-ui

    npm install --save material-ui
    

    yarn add material-ui
    

    src/App.js

    import React, { Component } from 'react';
    
    import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider'; // add
    import RaisedButton from 'material-ui/RaisedButton'; // add
    
    import logo from './logo.svg';
    import './App.css';
    
    class App extends Component {
      render() {
        return (
    
          <MuiThemeProvider>
    
          <div className="App">
            <div className="App-header">
              <img src={logo} className="App-logo" alt="logo" />
              <h2>Welcome to React</h2>
            </div>
            <p className="App-intro">
              To get started, edit <code>src/App.js</code> and save to reload.
            </p>
    
            <RaisedButton label="Material UI" />
    
          </div>
    
          </MuiThemeProvider>
    
        );
      }
    }
    
    export default App;
    

    总而言之,这些是要做的事情:

    • 安装必要的软件包。

    • App.js中导入MuiThemeProvider组件,在MuiThemeProvider组件中封装app div

    • 现在您可以导入和使用material-ui 中的任何组件,就像我在这里使用 RaisedButton 一样

    需要0.19.1之前的material-ui版本react-tap-event-plugin

    对于那些版本,您必须在 index.js 中进行此更改

    src/index.js

    import React from 'react';
    import ReactDOM from 'react-dom';
    
    import injectTapEventPlugin from 'react-tap-event-plugin';   // add
    
    import './index.css';
    import App from './App';
    import registerServiceWorker from './registerServiceWorker';
    
    injectTapEventPlugin();  // add
    
    ReactDOM.render(<App />, document.getElementById('root'));
    registerServiceWorker();
    
    • import injectTapEventPlugin from react-tap-event-plugin in index.js 并初始化它。 injectTapEventPlugin 按顺序使用 删除 iOS 中的点击延迟。

    【讨论】:

    • 谢谢。有没有办法让所有组件不用一个一个导入就可以使用?
    • 这是刚入门的人们经常提出的问题。从根本上说,JS 的模块范式植根于隔离的、可重用的组件。它们不是可以一次全部导入的更大生态系统的一部分。这是一个相当大的话题,但简而言之,你不能在一个语句中导入所有 Material-UI。
    • react-tap-event-plugin 的原因只是作为 iOS 浏览器问题的解决方法,而不是问题的关键,对吧?
    • 根据官方 NPM 页面,如果您使用的是 0.19.0 或更高版本,则不需要 react-tap-event-pluginnpmjs.com/package/material-ui#react-tap-event-plugin
    • 当前文档(2019 年 9 月)显示使用以下命令安装: npm install --save @material-ui/core 。在尝试材料 ui 示例时,使用上述内容会给我带来错误
    猜你喜欢
    • 2019-01-30
    • 1970-01-01
    • 2021-01-30
    • 2019-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-06
    相关资源
    最近更新 更多