账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    在React之中 经过Webpack编译的CSS类名改变 无法被引用
    61
    0

    打算使用className来引用css之中的类名

    react.js:

    import '../styles/button.scss'
    
    function Button(props) {
        console.log(props.className)
        return (
            <div>
                <button className={props.className}>{props.text}</button>
            </div>
        )
    }
    
    export default function Buttons() {
        return (
            <div>
                <Button className="button1" text="btn1" />
                <Button className="button2" text="btn2" />
                <Button className="button3" text="btn3" />
            </div>
        )
    }

    button.scss:

    .button1 {
        background: rgb(235, 16, 16);
    }
    
    .button2 {
        background: rgb(23, 216, 17);
    }
    
    .button3 {
        background: rgb(13, 81, 207);
    }

    通过chrome浏览器的控制台可以看见编译之后的css:

    .button__button1-172qT {
      background: #eb1010; }
    
    .button__button2-1tvBf {
      background: #17d811; }
    
    .button__button3-q4dzw {
      background: #0d51cf; }

    css的类名都被改变了,所以在 function Button之中无法直接引用className .button1,我知道如果使用css module可以解决这个问题,但是现在可以不使用在 className之中直接使用 button1这个类名么?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 在React中,如果你已经使用Webpack将CSS类名编译为独立的文件,并且这些文件被导出到不同的模块,那么你可能会遇到一个问题,那就是你试图引用这些CSS类名,但它们实际上已经改变了。

      这个问题的根源在于,Webpack在编译CSS类名时,它只是将它们作为一个字符串对象进行处理。因此,即使你在React中引用了这些类名,它们的引用仍然是不变的。

      如果你想要解决这个问题,你可以在你的React组件中使用import语句来导入你想要使用的CSS类。这样,你就可以使用新的CSS类名了,而不会影响到原有的类名。

      例如,如果你有一个名为App.css的CSS文件,你可以这样导入它:

      javascript import './App.css';

      然后,在你的React组件中,你可以这样引用这个新的CSS类名:

      ```javascript import React from 'react'; import './App.css';

      function App() { return (

      {/ ... /}
      ); } ```

      这样,即使你的CSS类名改变了,这个组件仍然可以正确地显示它们的新样式。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部