我已经做了一个自定义的用户确认对话框从材质UI对话框组件,如here
我遇到了一个问题,覆盖对话框的字体。我可以覆盖颜色或背景色,但对话框的标题或按钮中的字体是从Material-UI继承的。我成功地覆盖了其他组件中的Material-UI字体,但没有在这部分使用回调:
const UserConfirmation = (
message: string,
callback: (shouldNavigate: boolean) => void
) => {
const container = document.createElement('div')
container.setAttribute('custom-confirmation-navigation', '')
document.body.appendChild(container)
const closeModal = (shouldNavigate: boolean) => {
ReactDOM.unmountComponentAtNode(container)
callback(shouldNavigate)
}
ReactDOM.render(
<>
<Dialog
fullWidth={true}
maxWidth="sm"
open={true}
aria-labelledby="alert-dialog-title"
aria-describedby="alert-dialog-description"
>
<DialogTitleWrapper
style={{fontFamily: `BuenosAires !important`, color: `orange`}}
>
Discard draft?
</DialogTitleWrapper>
<DialogContent>
<p> {message} </p>
</DialogContent>
<DialogActionsWrapper>
<Button
onClick={() => closeModal(true)}
fullWidth={true}
variant="outlined"
label="Discard"
/>
<div style={{ width: '80%' }} />
<Button
onClick={() => closeModal(false)}
fullWidth={true}
variant="contained"
label="Cancel"
/>
</DialogActionsWrapper>
</Dialog>
</>,
container
)
}
export default UserConfirmation
3条答案
按热度按时间v2g6jxz61#
感谢Alex
对我来说很有效:
<DialogTitle disableTypography="true">
此外,按钮的标签被固定为:
label={<h5 style={{ textTransform: 'none' }}>Cancel</h5>}
ryevplcw2#
您可以使用
classes
对象来扩展或扩展应用于组件的样式。这里创建自定义样式,如下所示
并分配给
classes
sample sandbox
goucqfw63#
现有的答案不再起作用(MUI v5)。
我发现这个问题在谷歌搜索的顶部,所以我更新的情况下有人发现有用的。
您可以使用
typography.fontFamily
覆盖fontFamily。如果你使用
next/font
,你可以传递font.style.fontFamily
(感谢讨论中的评论)我以前使用过
inherit
,它在屏幕的主体中运行正常,但不是在演示角色中(如在对话框或菜单中)。