css - 我的组件没有读取导入的 Slick CSS
问题描述
我将 Sick carousel 的 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
问题是样式没有应用于我的轮播。
我试图在需要它的组件中导入 CSS,但是 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>
评论:我们只在我们需要的页面中嵌入和加载样式,也许它有助于节省字节。
推荐阅读
- pdf - PDFTron full api 未在 WebViewer 中加载
- javascript - 如何使硒滚动以查看元素的能力
- python - Flask缓存设置方法抛出KeyError?
- vaadin - 使用 vaadin-date-picker 从当前日期冻结过去的日期
- python - 全局变量在嵌套导入时如何表现?
- javascript - 构建 React 组件时出现 Babel 语法错误(使用流类型)
- matlab - 带有向量的 Matlab fsolve:如何定义函数?
- botframework - MS Bot 到 Teams 的集成问题
- javascript - 即使尚未授予权限,添加设备传感器侦听器是否安全?
- css - 有没有办法不在 SCSS 中使用 !important 这么多(反应 + 材料)