【发布时间】:2019-02-12 06:59:58
【问题描述】:
在下面的代码中,为什么调用classes 对象有效?似乎调用应该是对定义为 const 顶部的 styles 对象。
例如in this demo:
className={classes.button}
按书面方式工作。不过好像应该是这样的
className={styles.button}
是否在任何地方定义了任何实际的classes 对象?如果是这样,它在哪里定义?该标记暗示了一个this.props.classes 对象。但是在 index.js 中调用时没有 props 传递给 <Demo />。
这是怎么回事?
https://codesandbox.io/s/qxv466wlqimport React from 'react';
import PropTypes from 'prop-types';
import { withStyles } from '@material-ui/core/styles';
import Button from '@material-ui/core/Button';
const styles = theme => ({
button: {
margin: theme.spacing.unit,
},
input: {
display: 'none',
},
});
function OutlinedButtons(props) {
const { classes } = props;
return (
<div>
<Button variant="outlined" className={classes.button}>
Default
</Button>
<Button variant="outlined" color="primary" className={classes.button}>
Primary
</Button>
<Button variant="outlined" color="secondary" className={classes.button}>
Secondary
</Button>
<Button variant="outlined" disabled className={classes.button}>
Disabled
</Button>
<Button variant="outlined" href="#outlined-buttons" className={classes.button}>
Link
</Button>
<input
accept="image/*"
className={classes.input}
id="outlined-button-file"
multiple
type="file"
/>
<label htmlFor="outlined-button-file">
<Button variant="outlined" component="span" className={classes.button}>
Upload
</Button>
</label>
</div>
);
}
OutlinedButtons.propTypes = {
classes: PropTypes.object.isRequired,
};
export default withStyles(styles)(OutlinedButtons);
【问题讨论】:
标签: javascript css reactjs class material-ui