在 React Hooks 中使用带有样式组件的 CSS attr()

Posted

技术标签:

【中文标题】在 React Hooks 中使用带有样式组件的 CSS attr()【英文标题】:Using CSS attr() with styled components in react Hooks 【发布时间】:2021-10-11 20:34:54 【问题描述】:

我正在尝试在 css 内容 attr 函数中使用 SkillPer 组件 pers=80 的属性,如下所示:

content: attr(pers) "%";

但是content: attr()无法获取<SkillPer pers=80></SkillPer>的属性

我错过了什么吗?请帮忙!

<SkillBar className="skill-bar">
    <SkillPer
        className="skill-per"
        pers=80
        style= maxWidth: "80%" 
    ></SkillPer>
</SkillBar>

export const SkillPer = styled.div`
    height: 12px;
    border-radius: 8px;
    background-color: var(--color-green);
    animation: $fillBars 2.5s 1;
    position: relative;
    &::before 
        content: attr(pers) "%"; // here
        position: absolute;
        padding: 4px 6px;
        background-color: #333;
        color: var(--color-white);
        font-size: 15px;
        right: 0;
        transform: translateX(200%);
    
`;

【问题讨论】:

【参考方案1】:

pers 是一个道具,因此您可以访问样式正文中的道具。我相信这应该对你有用。

export const SkillPer = styled.div`
  height: 12px;
  border-radius: 8px;
  background-color: var(--color-green);
  animation: $fillBars 2.5s 1;
  position: relative;
  &::before 
    content: $( pers ) => `"$pers %"`;
    position: absolute;
    padding: 4px 6px;
    background-color: #333;
    color: var(--color-white);
    font-size: 15px;
    right: 0;
    transform: translateX(200%);
  
`;

【讨论】:

嗨,我也试过这个,但它不起作用(( @BoburmirzoMuhibullaev 哦,我明白了,好像我忘记了引号,试试content: $( pers ) =&gt; `"$pers %"`;。我刚刚在代码盒中测试了它并呈现。 @BoburmirzoMuhibullaev codesandbox.io/s/… @BoburmirzoMuhibullaev 太棒了!如果您的问题/问题得到解决,那么我邀请您接受答案 (***.com/help/someone-answers)。干杯,祝你好运。

以上是关于在 React Hooks 中使用带有样式组件的 CSS attr()的主要内容,如果未能解决你的问题,请参考以下文章

带有 Ionic-React 选择的 React-Hooks-Form 不返回所选值

React Hooks Typescript 开发的一款 H5 移动端 组件库

React Hooks 和组件生命周期等价物

如何使用 React Hooks 处理 React Svg 拖放

react---Hooks的基本使用---巷子

如何在使用 TypeScript 的 create-react-app 中使用带有 babel 插件的样式化组件?