小编Fra*_*uez的帖子

生产中的材质 UI 类名称无法正确解析

目前的行为

生产中生成的类名makeStyles会破坏在开发模式下显然可以正常工作的功能。

(嵌套)运算&符在生产中中断导致类名中的唯一标识符不匹配。

简单的例子

1 - 开发模式:white_check_mark:

1.1检查<head>标签,生成的样式:

  • 我的组件中的自定义makeStyles生成:

捕捉潘塔拉 2020-07-22 和 las 1 20 01

1.2 MaterialUI渲染的类名:

捕捉潘塔拉 2020-07-22 和 las 1 19 16

(忽略附加属性,有信息性无功能)

1.3 chrome中检查的匹配样式:

捕捉潘塔拉 2020-07-22 和 las 1 19 46

匹配正确并正确覆盖样式。

这有效

捕捉潘塔拉 2020-07-22 和 las 1 25 50

scale的预期transform被正确覆盖。

2 - 生产模式:x:

2.1检查<head>标签,生成的样式:

  • 我的组件中的自定义makeStyles生成:

捕捉潘塔拉 2020-07-22 和 las 1 36 32

(显然和开发中的一样)

2.2 - MaterialUI 渲染的类名: 捕捉潘塔拉 2020-07-22 和 las 1 33 56 (忽略附加属性,有信息但没有功能) 它们都有一个随机后缀。

2.3 chrome中检查的匹配样式:

捕捉潘塔拉 2020-07-22 和 las 1 42 07

.makeStyles-root-304.MuiInputLabel-marginDense生成的类名与makeStylesMaterialUi 标签中不匹配导致标识符.MuiInputLabel-marginDense-220。以标签中的HTML节点结尾220,在生成时还makeStyles没有220后缀

不匹配。这不起作用

捕捉潘塔拉 2020-07-22 和 las 1 32 03

样式未被覆盖

预期行为

在生产模式下,标识符可以与变量 os 匹配。也许我错了,但我不知道为什么会造成这种情况。

重现步骤

我写了一个我正在尝试的简单示例,您可以在https://codesandbox.io/s/simbleapp-1xzgd?file=/public/index.html中检查 Codesandbox 示例是否正常工作(Codesandbox 作为开发环境)

检查我发布的问题,它需要在类似生产的环境中,然后只需在本地下载相同的 Codesandbox 即可: …

css production reactjs material-ui jss

5
推荐指数
0
解决办法
2112
查看次数

标签 统计

css ×1

jss ×1

material-ui ×1

production ×1

reactjs ×1