标签: material-ui

reactjs/material-ui 应用程序在生产版本中高达 917kb!我该怎么做才能减小尺寸?

我正在使用 react: 15.4.0, material-ui: 0.16.4, react-tap-event-plugin: 2.0.1 并且我的应用程序内置了一些很好的工作流程。当我准备生产时,我发现该应用程序在生产版本中消耗了 917kb,并且应用程序在 ui 转换方面也很缓慢。我不确定这两件事是否相关。

我遵循了几乎所有来自不同博客文章的建议来减小包的大小,但没有任何帮助。

然后我读了一些文章,说 material-ui 很重,会占用应用程序中的大量空间,因此也想检查一下这种可能性。

我在 package.json 中的依赖项如下所示,我同时使用 create-react-app 和独立的 webpack 设置。

"dependencies": {
  "babel-loader": "6.2.9",
  "babel-plugin-transform-class-properties": "6.19.0",
  "babel-polyfill": "6.16.0",
  "babel-preset-es2015": "6.18.0",
  "babel-preset-react": "6.16.0",
  "babel-preset-stage-0": "6.16.0",
  "babel-register": "6.18.0",
  "babel-runtime": "6.20.0",
  "body-parser": "1.15.2",
  "concurrently": "3.1.0",
  "express": "4.14.0",
  "formsy-material-ui": "0.5.3",
  "formsy-react": "0.18.1",
  "https": "1.0.0",
  "isomorphic-fetch": "2.2.1",
  "localforage": "1.4.3",
  "material-ui": "0.16.6",
  "nedb": "1.8.0",
  "pako": "1.0.4",
  "peer": "0.2.8",
  "peerjs": "0.3.14",
  "pushstate-server": "2.1.0",
  "qrcode.react": "0.6.1",
  "react": "^15.4.1",
  "react-addons-css-transition-group": "15.4.1",
  "react-dom": "^15.4.1",
  "react-grid-layout": "0.13.9",
  "react-motion": "0.4.7", …
Run Code Online (Sandbox Code Playgroud)

reactjs material-ui

0
推荐指数
1
解决办法
991
查看次数

在 Material-ui 按钮上调用 onClick 事件的动作创建者不起作用

当我为材质 ui RaisedButton 上的 onClick 事件调用动作创建者时,出现以下错误

失败的道具类型:无效的支柱onClick型的object供给RaisedButton,预计function

这是我写的组件

import React, { Component } from 'react';
import RaisedButton from 'material-ui/RaisedButton';
import { connect } from 'react-redux';

import * as actions from '../actions';

class App extends Component {
  authButton = () => {
    if(this.props.authenticated) {
      return <RaisedButton label="Sign out" onClick={this.props.authenticate(false)} />
    }

    return <RaisedButton label="Sign out" onClick={this.props.authenticate(true)} />
  }
  render() {
    return (
        <div>{this.authButton()}</div>
    );
  }
}

const mapStateToProps = (state) => {
  return …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs material-ui react-redux

0
推荐指数
1
解决办法
1587
查看次数

使用 CSS API 覆盖 Material UI Stepper 中的 CSS 样式

我想更改 Material UI StepIcon 中的文本颜色(实际上是一个 SVG 图标),仅用于活动和已完成的步骤。目前,我成功地为这些步骤更改了图标的颜色。这就是我的MuiTheme现在的样子。

export default createMuiTheme({
  overrides: {
    MuiStepIcon: {
      root: {
        '&$active': {
          color: styles.myGreen,
        },
        '&$completed': {
          color: styles.myGreen,
        },
      },
    }
  },
});
Run Code Online (Sandbox Code Playgroud)

整个步进器看起来像:

带有应用颜色的步进器

Assumings,我想改变的颜色到灰(其表示完成的步骤)和色2号到灰以及(其表示当前激活步骤),同时保持非激活步骤没有变化(白色填充)。

官方文档一样更改文本的填充属性不会产生任何结果,在开发人员检查器中仍然显示填充等于白色。

我想为整个应用程序应用该样式。

对此有任何提示或解决方案吗?

javascript css uistepper material-design material-ui

0
推荐指数
1
解决办法
1231
查看次数

React JS - 如何在 Dialog (material-ui) 的 PaperProps 中添加样式

我正在使用 material-ui ReactJs 中的 Dialog 组件。

<Dialog fullScreen open={this.state.open}
  PaperProps={{ classes: {root: classes.dialogPaper} }}
  onClose={this.handleClose.bind(this)} transition={this.props.transition}>
  {this.props.children}
</Dialog>
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,我已经覆盖了 PaperProps 的根类。现在我还想覆盖 PaperProps 中的样式。在 PaperProps 中是否可以覆盖样式。

就像是 PaperProps={{ classes: {root: classes.dialogPaper}, style:{} }}

如果我错了,请告诉我。我也想覆盖样式。

overriding dialog inline-styles reactjs material-ui

0
推荐指数
1
解决办法
8279
查看次数

2018 年还需要 react-tap-event-plugin 吗?

现在还需要https://github.com/zilverline/react-tap-event-plugin吗?或者它已经直接实现到 React 的源代码中,并且点击延迟消失了。

reactjs material-ui react-redux

0
推荐指数
1
解决办法
3543
查看次数

在 Material UI 图标中没有按预期工作

我正在使用 Material UI。在文档中它表明我可以使用:

 import Icon from "@material-ui/core/Icon";
   ...
  <Button variant="contained" color="primary" className={classes.button}>
     blabla
      <Icon className={classes.rightIcon}>send</Icon>
  </Button>
Run Code Online (Sandbox Code Playgroud)

但它显示的是一个带有“BLABLA SE”文本的按钮,这是错误的。

但是当我使用:

import SendIcon from "@material-ui/icons/Send";
....
    <Button variant="contained" color="primary" className={classes.button}>
     Blabla
     <SendIcon className={classes.rightIcon} />
    </Button>
Run Code Online (Sandbox Code Playgroud)

它工作得很好,BLABLA左侧有一个文本和一个发送图标。

在文档中提供的沙箱中,两者都可以工作。那么为什么第一种情况对我不起作用?

reactjs material-ui

0
推荐指数
1
解决办法
8324
查看次数

Material-ui Drawer 不适用于单独的 css 文件

我正在创建一个类似于Mini Variant drawer demo的侧边栏,但我的项目指定所有 css 格式必须在单独的 css 文件中完成,而不是在抽屉的 js 文件中(如 material-ui 演示所做的那样)。我已经想出了如何根据演示格式化我的抽屉,但现在我需要弄清楚如何分离 css 并使其可用。

现在抽屉使用默认设置呈现,但除了一个 css 类之外的所有类都无法工作/呈现。只有一个 listItem 可以工作并更改 ListItem 的高度,这很奇怪。所有其他 css 类都不会改变抽屉的外观。

这是非工作版本,其中导入了一个单独的 css 文件:

.root {
    display: flex;
}

.drawerOpen {
    top: 70px; 
    bottom: 70px;
    position: fixed;
    white-space: nowrap; /*text doesn't shrink into side*/
    width: 240;
    transition: width 2s;
}

.drawerClose {
    top: 70px; 
    bottom: 70px;
    position: fixed;
    width: 240;
    overflow-x: hidden; /*hides text when drawer is closed*/
    transition: width 2s;
}

.iconButton {
    margin-top: 15px; …
Run Code Online (Sandbox Code Playgroud)

javascript css reactjs material-ui

0
推荐指数
1
解决办法
3911
查看次数

用户列表左侧出现蓝点

我有这个render功能:

render() {
    const {classes} = this.props
    return (
      <Paper className={classes.root} elevation={4}>
        <Typography type="title" className={classes.title}>
          All Users
        </Typography>
        <List dense>
         {this.state.users.map((item, i) => {
          const photoUrl = item._id
              ? `/api/users/photo/${item._id}?${new Date().getTime()}`
              : '/api/users/defaultphoto'
          return <Link to={"/user/" + item._id} key={i}>
                    <ListItem button>
                      <ListItemAvatar>
                        <Avatar src={photoUrl} className={classes.bigAvatar}/>
                      </ListItemAvatar>
                      <ListItemText primary={item.name}/>
                      <ListItemSecondaryAction>
                      <IconButton>
                          <ArrowForward/>
                      </IconButton>
                      </ListItemSecondaryAction>
                    </ListItem>
                 </Link>
               })
             }
        </List>
      </Paper>
    )
  }
}
Run Code Online (Sandbox Code Playgroud)

当我最初加载页面时,每个用户的左侧都会出现下面的蓝点:

在此处输入图片说明

如果我然后单击指向另一个页面的链接,然后单击浏览器后退箭头返回到用户页面,则用户列表将显示为没有蓝点:

在此处输入图片说明

如果蓝点永远不会出现,我会更喜欢。我该怎么做呢?

javascript node.js material-ui

0
推荐指数
1
解决办法
4246
查看次数

主题更改后,Material UI 按钮颜色未更改

在反应材料 Ui 的项目中使用。主题被覆盖,但按钮和输入的颜色不会改变。

theme.js是创建 Material Ui 主题的地方

// @flow
import { createMuiTheme } from '@material-ui/core';

import type
{
  Theme,
} from '@material-ui/core';

const theme: Theme = createMuiTheme({
  palette: {
    primary: {
      main: '#ffa300',
      light: '#ffd449',
      dark: '#c67400',
      contrastText: '#000000',
    },
    secondary: {
      main: '#ff8500',
      light: '#ffb644',
      dark: '#c55600',
      contrastText: '#000000',
    },
    error: {
      main: '#A21C2B',
    },
  },
});


export default theme;
Run Code Online (Sandbox Code Playgroud)

这是 App.js

import React from 'react';
import { ThemeProvider } from '@material-ui/styles';
import CssBaseline from '@material-ui/core/CssBaseline';
import …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs material-ui

0
推荐指数
1
解决办法
5089
查看次数

全局概述覆盖

我可以通过什么方式覆盖全局主题,以便所有使用变体 = 'outlined' 的组件都受该样式的影响。还想覆盖焦点、悬停等事件。

 "@material-ui/core": "^3.9.2",
Run Code Online (Sandbox Code Playgroud)

reactjs material-ui

0
推荐指数
1
解决办法
1968
查看次数