Material ui 什么';在材质界面中,withStyle和withTheme的区别是什么?

Material ui 什么';在材质界面中,withStyle和withTheme的区别是什么?,material-ui,Material Ui,我是网络开发新手,我正在尝试使用MaterialUI。我看到一些演示代码与Style一起使用,还有一些与Theme一起使用。他们之间有什么不同吗?非常感谢 withStyles覆盖特定组件的样式 withTheme覆盖特定组件的样式,同时允许您访问主题,以便您的样式可以基于主题的颜色、排版、间距等 这可能会令人困惑,因为您必须使用以下高阶函数创建新组件: const MyCustomBottom = withStyles(styles)(Button); const MyCustomThemeB

我是网络开发新手,我正在尝试使用MaterialUI。我看到一些演示代码与Style一起使用,还有一些与Theme一起使用。他们之间有什么不同吗?非常感谢

withStyles
覆盖特定组件的样式

withTheme
覆盖特定组件的样式,同时允许您访问主题,以便您的样式可以基于主题的颜色、排版、间距等

这可能会令人困惑,因为您必须使用以下高阶函数创建新组件:

const MyCustomBottom = withStyles(styles)(Button);
const MyCustomThemeBasedButton = withTheme(theme)(Button);

我认为公认的答案没有得到很好的解释,更清楚地说:

1)
withStyles
在创建css样式时还提供
主题
对象;创建函数的签名如下所示:

const styles = theme => ({
  root: {
    maxWidth: 600,
  },
  tabs: {
    borderTopWidth: 1,
    borderTopStyle: 'solid',
    borderColor: theme.palette.divider,
    width: '100%',
  },
});
可以看到
theme
和它里面的所有东西,比如
theme.palete
,都可以访问。官方文件和例子到处都是,所以我只是随机挑选。(按此按钮显示源代码:“<>”)

2)
with theme
的目的是将
主题
注入
道具
,因此它也可以在组件函数(如
渲染
)中访问,有时很有用。正式文件