【发布时间】:2018-07-20 11:56:49
【问题描述】:
我想从Material UI 库中创建一个组件的扩展。例如,我总是在模式中向包装器添加样式,所以我想创建一个自定义组件来封装这些样式。
我找到了以下“有效”的解决方案,但我觉得道具界面有点像黑客。有一个更好的方法吗?具体来说,将原始 <Modal> 组件中的 classes 属性与我的自定义 styles 对象中的类合并的最佳方法是什么?
import { Modal, WithStyles, createStyles, withStyles } from '@material-ui/core';
import { ModalClassKey, ModalProps } from '@material-ui/core/Modal';
import * as React from 'react';
interface IProps
extends WithStyles<typeof styles | ModalClassKey>,
Omit<ModalProps, 'classes'> {}
const styles = createStyles({
modal: {
// Some styles to apply to the modal content
},
});
const MyModal: React.SFC<IProps> = ({ children, classes, ...props }) => (
<Modal {...props}>
<div className={classes.modal}>
{children}
</div>
</Modal>
);
export default withStyles(styles)(MyModal);
【问题讨论】:
标签: reactjs typescript material-ui