typescript - 'styled()' 函数删除了 'component' 道具支持
问题描述
看下面的代码:
import { styled } from "@material-ui/core/styles";
import ButtonBase from "@material-ui/core/ButtonBase";
const MyButton = styled(ButtonBase)({ color: "red" });
const App = () => (
<>
<ButtonBase component="a" />
<MyButton component="a" />
</>
);
ButtonBase
正在按预期工作,但突然出现来自 Typescript 的错误,告诉您没有 'component' prop on MyButton
。
它是否正确?这种行为的解决方法是什么?
解决方案
如果你想使用 HOC,你可以使用withStyles
MaterialUI
import React from "react";
import "./styles.css";
import { withStyles } from "@material-ui/core/styles";
import ButtonBase from "@material-ui/core/ButtonBase";
const styles = {
MyButton: {
color:'red'
},
};
const MyButton = ({ classes, children, ...rest }) => <ButtonBase className={classes.MyButton} {...rest}>{children}</ButtonBase>;
const MyButtonStyled = withStyles(styles)(MyButton);
const App = () => (
<>
<ButtonBase component="a">ASD</ButtonBase>
<MyButtonStyled component="a">DSA</MyButtonStyled>
</>
);
推荐阅读
- javascript - React Native Android 文件不存在
- android - Android Spinner setOnItemSelectedListener 不会触发,但它显示来自 API 的正确值
- python - 如何将 Anaconda 管理员(提升)命令控制台启动到 Windows 10 UserProfile 目录,而不是“c:\Windows\System32”
- node.js - 节点js猫鼬找到一个字段增量
- python - Python Telegram API 在尝试编辑消息媒体时引发无用的错误
- list - SwiftUI - 使列表分隔线扩展到触摸屏边缘
- spring-boot - mvn clean install Ubuntu 终端
- python - 将 Pandas df 混合数据列解析为日期时间
- html - 根据另一个div中的类将类添加到div
- reactjs - 在提交按钮上呈现反应 js 中的内容