如何解决向 Material-ui (raect) 添加粗体 (boolean)
我有一个来自 Material-UI (MUI) 的 Typography 组件,我需要添加一个粗体选项(类型 - 布尔值)。
我的排版组件
import React,{ FC } from 'react';
import Typo from '@material-ui/core/Typography';
interface IText {
[property: string]: FC;
}
// for styles of each variant - see 'theme.ts'
const Typography: IText = {
Title1: ({ children }) => (
<Typo variant="subtitle1" component="h2">
{children}
</Typo>
),Title2: ({ children }) => (
<Typo variant="subtitle2" component="h3">
{children}
</Typo>
),//....More like this below......
};
export default Typography;
我像这样使用它(在我的其他组件中):
<Typography.Title1>/*...some code here...*/</Typography.Title1>
,我想像这样添加粗体:
<Typography.Title1 bold>/*...some code here...*/</Typography.Title1>
并且文本会加粗。
我已经尝试通过这个来添加一个界面,但我在使用排版的每个组件中都出现错误...
interface IText {
[property: string]: FC;
}
interface IBold {
bold?: boolean;
}
type IProps = IText | IBold;
const style = { fontWeight: 'bold' };
// for styles of each variant - see 'theme.ts'
const Typography: IProps = {
Title1: ({ children },bold) => (
<Typo style={bold && style} variant="subtitle1" component="h2">
{children}
</Typo>
),
“IProps”类型上不存在属性“Title1”。 类型“IBold”.ts(2339)
上不存在属性“Title1”希望我写得好... 谢谢!
解决方法
我解决了。
我将 IText
接口添加到 IBold
接口。
像这样:
interface IText {
[property: string]: FC<IBold>;
}
//....
const Typography: IText = {
Title1: ({ children },bold) => (
<Typo style={bold && style} variant="subtitle1" component="h2">
{children}
</Typo>
),//....
然后,从使用的组件:
<Typography.Title1 bold={true}>
//Some code
</Typography.Title1>,//...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。