微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我的组件无法读取导入的Slick CSS

如何解决我的组件无法读取导入的Slick CSS

我要像这样将Sick轮播的CSS导入我的根组件:

    import React from 'react'
    import PropTypes from 'prop-types'
    import { ThemeProvider } from 'styled-components'
    import { AppContext } from 'services/AppContext'
    import Layout from 'components/blocks/Layout'
    import { GlobalStyle,AppContainer } from 'shared/styles'
    
    import theme from 'theme'
    
    import 'slick-carousel/slick/slick.css'
    import 'slick-carousel/slick/slick-theme.css'
    
        function App({ Component,pageProps }) {
          return (
            <AppContext.Provider value={{ foo: 'bar' }}>
              <ThemeProvider theme={theme}>
                <AppContainer>
                  <GlobalStyle />
                  <Layout>
                    <Component {...pageProps} />
                  </Layout>
                </AppContainer>
              </ThemeProvider>
            </AppContext.Provider>
          )
        }
        
        App.propTypes = {
          Component: PropTypes.elementType.isrequired,pageProps: PropTypes.object.isrequired,}
        
        export default App

问题是样式没有应用到我的轮播中。

我尝试将CS​​S导入需要它的组件中,但是next.js给我一个错误,要么我必须将其导入到根组件中,要么使它成为组件级CSS,我不知道怎么做。

有什么建议吗?

解决方法

在使用react-slick时,我也遇到了这个问题,它需要滑块和导航箭头中的slick-carousel中很少的CSS。

目前,我有两种解决方法:

  • 解决方案1 ​​:将CSS导入移至根目录(pages/_app.js
// _app.css
...
import 'slick-carousel/slick/slick.css'
import 'slick-carousel/slick/slick-theme.css'
...

// page/_app.js

...
import "./_app.css"
...

注释:它可以使react-slick正常工作,但在所有页面上均会加载slick-carousel的CSS。不太好!

  • 解决方案2(首选):使用link标签并将这些CSS嵌入到页面的<head>
// I downloaded the CSS,minified them and put in the public folder
/public/static/css/slick.css
/public/static/css/slick-theme.css

// page/example.js

import Head from "next/head"

...
<Head>
// Embed local CSS
<link rel="stylesheet" type="text/css" href="/static/css/slick.css" />
<link rel="stylesheet" type="text/css" href="/static/css/slick-theme.css" />

// Or we can change the href to CDNs too
</Head>

注释:我们仅在需要的页面中嵌入和加载样式,也许有助于节省字节数。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。