首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >‘'styled()’function prop 'component‘prop支持

‘'styled()’function prop 'component‘prop支持
EN

Stack Overflow用户
提问于 2020-04-08 06:01:04
回答 2查看 50关注 0票数 0

请看下面的代码:

代码语言:javascript
复制
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" />
  </>
);

ButtonBaseexpected的身份工作,但是突然有一个来自Typescript的错误,它告诉我们MyButton上没有‘组件’属性。

这是正确的吗?此行为的解决方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-08 19:48:09

最后,我只是扩展了ButtonBaseProps并在其中覆盖了一些需要的道具。这是一个非常简单的解决问题的方法,需要手动向界面添加缺少的道具,但现在就可以了。

代码语言:javascript
复制
import ButtonBase, { ButtonBaseProps } from "@material-ui/core/ButtonBase";
import { styled } from "@material-ui/core/styles";

export interface MyButtonProps extends ButtonBaseProps {
  component?: any;
}
interface MyButtonAsLinkProps extends MyButtonProps {
  component: "a";
  href: string;
  target?: "_blank";
  rel?: "noopener noreferrer";
}

export const MyButton = withStyles({
  root: {
    color: "red",
  },
})(ButtonBase) as (props: MyButtonProps | MyButtonAsLinkProps ) => React.ReactElement;
票数 0
EN

Stack Overflow用户

发布于 2020-04-08 18:29:39

如果你想使用HOC,你可以使用MaterialUI中的withStyles

我创建了一个沙盒HERE

代码语言:javascript
复制
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>
  </>
);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61090069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档