- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我启用了 CSS modules within webpack.config在我的 React 应用程序中,这样我就可以在本地将 CSS 文件范围限定到各个组件。我也在尝试使用 PrimeReact 中的 TabView 组件.当我这样做时,不会应用 PrimeReact 的主题。如果我创建一个单独的元素并且不启用 CSS 模块,主题将正确应用。
如何使用 PrimeReact 主题并启用 CSS 模块?
我已经测试过将 Tabs.js 中的内容直接移动到 App.js 中并获得相同的结果。
启用 CSS 模块
Webpack.config
require.resolve('style-loader'),
{
loader: require.resolve('css-loader'),
options: {
importLoaders: 1,
modules: true,
localIdentName: '[name]__[local]__[hash_base64:5]'
},
},
App.js
import React, { Component } from 'react';
import classes from './App.css';
import Tabs from './UI/Tabs';
class App extends Component {
render() {
return (
<Tabs/>
);
}
}
export default App;
Tabs.js
import React from 'react';
import {TabView, TabPanel} from 'primereact/components/tabview/TabView';
import classes from 'primereact/resources/primereact.css';
import theme from 'primereact/resources/themes/cupertino/theme.css';
const Tabs = () => (
<TabView>
<TabPanel header="Tab One">
This is content for Tab One.
</TabPanel>
<TabPanel header="Tab Two">
This is content for Tab Two.
</TabPanel>
</TabView>
);
export default Tabs;
启用 CSS 模块(本地组件范围)
最佳答案
通过如下修改 webpack.config,我能够使用 CSS 模块并选择性地将全局作用域应用于 PrimeReact 的主题。
原创:
{
test: /\.css$/,
use: [
require.resolve('style-loader'),
{
loader: require.resolve('css-loader'),
options: {
importLoaders: 1,
modules: true,
localIdentName: '[name]__[local]__[hash:base64:5]'
},
},
{
loader: require.resolve('postcss-loader'),
options: {
// Necessary for external CSS imports to work
// https://github.com/facebookincubator/create-react-app/issues/2677
ident: 'postcss',
plugins: () => [
require('postcss-flexbugs-fixes'),
autoprefixer({
browsers: [
'>1%',
'last 4 versions',
'Firefox ESR',
'not ie < 9', // React doesn't support IE8 anyway
],
flexbox: 'no-2009',
}),
],
},
},
],
},
修改:
{
test: /\.css$/,
//Exclude 3rd party css that needs to be scoped globally from using
//css-loader with modules enabled
exclude: [
path.resolve('node_modules/primereact/resources/primereact.css'),
path.resolve('node_modules/primereact/resources/themes/cupertino/theme.css'),
],
use: [
require.resolve('style-loader'),
{
loader: require.resolve('css-loader'),
options: {
importLoaders: 1,
modules: true,
localIdentName: '[name]__[local]__[hash_base64:5]'
},
},
{
loader: require.resolve('postcss-loader'),
options: {
// Necessary for external CSS imports to work
// https://github.com/facebookincubator/create-react-app/issues/2677
ident: 'postcss',
plugins: () => [
require('postcss-flexbugs-fixes'),
autoprefixer({
browsers: [
'>1%',
'last 4 versions',
'Firefox ESR',
'not ie < 9', // React doesn't support IE8 anyway
],
flexbox: 'no-2009',
}),
],
},
},
],
},
//Additional css-loader configuration
{
test: /\.css$/,
//Inlcude only 3rd party css that needs to be scoped globally to use
//css-loader with modules disabled
include: [
path.resolve('node_modules/primereact/resources/primereact.css'),
path.resolve('node_modules/primereact/resources/themes/cupertino/theme.css'),
],
use: [
require.resolve('style-loader'),
{
loader: require.resolve('css-loader'),
options: {
importLoaders: 1
},
},
{
loader: require.resolve('postcss-loader'),
options: {
// Necessary for external CSS imports to work
// https://github.com/facebookincubator/create-react-app/issues/2677
ident: 'postcss',
plugins: () => [
require('postcss-flexbugs-fixes'),
autoprefixer({
browsers: [
'>1%',
'last 4 versions',
'Firefox ESR',
'not ie < 9', // React doesn't support IE8 anyway
],
flexbox: 'no-2009',
}),
],
},
},
],
},
关于css - 在 React 应用程序中使用 PrimeReact 主题和启用的 CSS 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48010671/
我似乎无法使用 styled-component 来设置 PrimeReact 组件的样式。 鉴于下面的代码呈现一个 InputText,我的意图是改变它的宽度。但它不起作用。 import styl
我是 Node、JavaScript 和 React 的新手。我必须在下拉列表中显示数据列表,然后将选定的数据保存在数据库中。问题是如何显示要选择的数据列表 他们以这种方式获取数据
我希望能够在 primereact 的主题之间切换,而不是导入一个主题,然后它会影响我的整个应用程序,而且我没有在暗模式或亮模式之间切换的选项。 最佳答案 在网站上观察他们是怎么做的www.prime
我正在使用 prime react 数据表 显示数据表,当鼠标悬停在单元格上时,我想显示工具提示或标题,如下图所示。 我检查了 Column 组件,但没有找到任何相关关键字来显示单元格上的工具提示或标
我想使用 Primereact 框架开发一个 React Js 应用程序。现在我遇到了一些导入无法找到的问题。 Import import {Button} from 'primereact/Butt
我想知道是否可以在 PrimeReact 中使用 react-icons 包中的图标,因为不幸的是 primeIcons 包不包含我的项目所需的所有图标。 我还没有找到解决方案,因为 react-ic
我是 React/Spring 初学者,我不知道如何使用 Primereact 制作文件上传。 他们的文档说明如下( https://www.primefaces.org/primereact/#/f
我正在尝试在我的项目中使用 PrimeReact 的编辑器组件 import React from 'react'; import Editor from './editor/Editor'; con
我试图将焦点集中在 primereact 的“Dropdown”组件上,但焦点并未集中在“Dropdown”组件上。 我已经使用了 https://www.primefaces.org/primere
我收到以下错误- Failed to compile ./node_modules/primereact/components/dropdown/DropdownPanel.js Module not
我启用了 CSS modules within webpack.config在我的 React 应用程序中,这样我就可以在本地将 CSS 文件范围限定到各个组件。我也在尝试使用 PrimeReact
我是一名优秀的程序员,十分优秀!