在下面的代码中,为什么对classes
对象的调用起作用?似乎应该对定义为styles
的{{1}}对象进行调用。
例如in this demo:
const
按书面规定工作。但似乎应该是
className={classes.button}
在任何地方都定义了任何实际的className={styles.button}
对象吗?如果是这样,它在哪里定义?标记暗示一个classes
对象。但是在index.js中调用时,没有this.props.classes
传递给props
。
这是怎么回事?
https://codesandbox.io/s/qxv466wlq<Demo />
答案 0 :(得分:3)
如果您看这行:
export default withStyles(styles)(OutlinedButtons);
我相信会为您的问题提供答案。材质UI具有一个withStyles
函数,该函数采用一个样式对象,然后返回另一个函数,该函数采用一个组件以返回一个新组件。这是一个高阶组件,可以在React docs. 上阅读
如果您查看withStyles
的链接代码,则可以看到以下代码行,它呈现了传入的组件:
return <Component {...more} classes={this.getClasses()} ref={innerRef} />;
并且正在提供classes
道具,使其可用于随withStyles
导出的任何组件。