当前位置: 首页 > 面试题库 >

React JS:应用Material-UI CssBaseline

公英哲
2023-03-14
问题内容

我想给我的新React应用程序一致的外观和使用感觉Material- UI。另外,我希望样式等易于维护。因此,默认主题似乎是一个不错的开始。该cssBaseline所提供的Material- UI似乎要检查所有的盒子,所以我想试一试。令人惊讶的是,这没有用。CSS主题不是我真正的事情。我在这里被误导了吗?以下代码是我在App.js组件中实现的,没有运气(从此处获取)。我希望这只是一个实现细节。

import React from "react";
import Footer from "./Footer";
import CssBaseline from "@material-ui/core/CssBaseline";
import AddTodo from "../containers/AddTodo";
import VisibleTodoList from "../containers/VisibleTodoList";

const App = () => (
  <React.Fragment>
    <CssBaseline />
    <div>
      <AddTodo />
      <VisibleTodoList />
      <Footer />
    </div>
  </React.Fragment>
);

export default App;

编辑 :这是index.js位于项目的根目录:

    import React from "react";
    import { render } from "react-dom";
    import { createStore, applyMiddleware } from "redux";
    import { Provider } from "react-redux";
    import App from "./components/App";
    import rootReducer from "./reducers";

    const store = createStore(rootReducer);

   render(
      <Provider store={store}>
        <MuiThemeProvider theme={theme}>
          <React.Fragment>
            <CssBaseline />
            <App />
          </React.Fragment>
        </MuiThemeProvider>
      </Provider>,
      document.getElementById("root")
    );

编辑: 我新的App.js

import React from "react";
import Footer from "./Footer";
import AddTodo from "../containers/AddTodo";
import AppBar from "../components/AppBar";
import VisibleTodoList from "../containers/VisibleTodoList";

const App = () => (
  <div>
    <AppBar />
    <AddTodo />
    <VisibleTodoList />
    <Footer />
  </div>
);
export default App;

问题答案:

CSSBaseline组件应在Material UI
ThemeProvider组件内使用。在您的示例中,您没有包含ThemeProvider,因此没有Material UI主题。

有关如何设置ThemeProvider的信息,请参见官方文档:https : //material-
ui.com/customization/themes/#muithemeprovider

根据此样本,使用CSSBaseline的最小工作示例为:

import React from 'react';
import { render } from 'react-dom';
import { MuiThemeProvider, createMuiTheme } from '@material-ui/core/styles';
import CssBaseline from "@material-ui/core/CssBaseline";
import Root from './Root';

const theme = createMuiTheme();

function App() {
  return (
    <MuiThemeProvider theme={theme}>
      <React.Fragment>
        <CssBaseline />
        <Root />
      </React.Fragment>
    </MuiThemeProvider>
  );
}

render(<App />, document.querySelector('#app'));

要加载Roboto字体,请将其添加到html模板中

<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500">

有关更完整的示例,请查看此官方示例的源代码:https : //github.com/mui-
org/material-ui/tree/master/examples/create-react-
app/src

  • public / index.html:加载roboto字体
  • src / withRoot.js:ThemeProvider和CSSBaseline设置
  • src / pages / index.js:应用了MUI主题的示例组件


 类似资料:
  • 问题内容: 我使用的示例中的一个,我只是改变了它从一个函数的一类组件,在那之后我看着怎么用,我做同样的事情,但无论我做什么的变化,以及什么样的我做没有应用样式。 的回报: 但这些样式均不适用于实际商品或。我究竟做错了什么? 问题答案: 您不应该尝试与一起使用。返回一个自定义钩子,并且将此自定义钩子传递到该钩子将无法正常工作。 而是,您需要以下内容:

  • 我创建了两个按钮,并给onClick函数togglePopup并在顶部定义它。但是我很困惑如何应用在反应中。我在javaScript中应用了这个方法,我不知道它是如何在反应中工作的? 弹出式 弹出窗口.css

  • 问题内容: 我有一个Angular应用程序,我想在ReactJS中编写应用程序的某些部分。 如何将ReactJS应用程序注入现有的Angular应用程序中?我还需要组件的双向通信。 问题答案: 您可能需要其他选项,所以我在第2段中编写了它: 无需通信的Angular-ReactJS 具有双向通信的Angular-ReactJS 下面的所有代码都是最少的,无法在提出的步骤中显示问题。在GitHub上

  • Material Design for AngularJS Apps Material Design is a specification for aunified system of visual, motion, and interaction design that adapts across different devices. Ourgoal is to deliver a lean,

  • PS D:\React\anti-app

  • 我正在使用create-react-app开发ReactJS应用程序。 npm start和npm run build应用程序工作正常,该应用程序运行在端口号为4000或pushstate-server build的端口9000,问题是我需要在公共url(如http://sample/home/)中运行没有端口号的构建应用程序,当我直接浏览build/index.html时,它正确显示了主页,但路