【问题标题】:React-toolbox how to include the styles correctlyReact-toolbox 如何正确包含样式
【发布时间】:2015-11-30 14:13:58
【问题描述】:

我正在尝试使用来自react-toolbox 的日期选择器。

这是我的 webpack 配置:

    {
        test: /\.css$/,
        loader: ExtractTextPlugin.extract('style-loader', 'css-loader!cssnext-loader')
    },{
        test: /\.scss$/,
        loaders: ['style', 'css', 'sass']
    }

我在resolve 部分中有 .scss:

resolve: {
    extensions: ['', '.js', '.jsx', '.scss']
},

我还将我的 App 组件包装在 ToolboxAPP

ReactDOM.render(
    <ToolboxApp>
        <Provider store={store}>
            <App />
        </Provider>
    </ToolboxApp>
, document.getElementById('root'))

当我渲染组件时,它是这样的:

从图中可以看出组件没有被样式化,对应的css类名是未定义的。

有人知道我做错了什么吗?

【问题讨论】:

  • 这里也一样。但是我连那些undefined都没有,只有空的class属性。
  • 能否在实例化 ExtractTextPlugin 的位置也添加行?

标签: reactjs react-toolbox


【解决方案1】:

您需要包含modules(不幸的是,这可能会破坏任何其他不使用模块的样式)。

请参阅https://github.com/react-toolbox/react-toolbox/issues/121 了解更多信息。

这是您需要在 webpack 加载器中使用的行:

require.resolve('css-loader') + '?sourceMap&modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]',

【讨论】:

【解决方案2】:

这看起来像是一个 Webpack 配置问题。这实际上很奇怪,因为如果 webpack 无法导入样式,它应该引发导入错误,而不是解析空对象。由于我们看不到整个配置文件,我想问您是否已经检查了工作示例存储库:https://github.com/react-toolbox/react-toolbox-example

有一个Webpack配置示例,希望对你有帮助!

【讨论】:

  • 它可以在页面上导入样式,它没有设置类。
  • 这个 webpack 文件非常令人困惑,因为有一个非常简单的 webpack 配置文件,里面的很多东西似乎都不是专门针对 react-toolbox 设置的。
【解决方案3】:

很明显,webpack 没有看到 css/scss 文件,你有任何错误,如果你仔细研究就会发现问题。

  1. 问题可能是你需要安装 css-loader 和 sass loader

    npm install css-loader --save-dev
    npm install sass-loader node-sass webpack --save-dev
    
  2. 如果你已经这样做了尝试解决

    resolve: {extensions: ['', '.jsx', '.scss', '.js', '.json'],
        modulesDirectories: [
            'node_modules',
            ${process.cwd()}/node_modules
        ]
    },
    
  3. module: {
        loaders: [
            {
                test: /(\.js|\.jsx)$/,
                exclude: /(node_modules)/,
                loader: 'babel',
            },  {
                test: /(\.scss|\.css)$/,
                loader: ExtractTextPlugin.extract('style', 'css?sourceMap&modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!postcss!sass'),
            },
            { test: /\.png$/, loader: "url-loader?limit=100000" },
            { test: /\.jpg$/, loader: "file-loader" },
        ]
    },
    

【讨论】:

  • 我遇到了类似的问题,我已经概述了解决问题的步骤。 1.是为了确保你安装了正确的加载器
猜你喜欢
  • 2016-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-26
  • 2016-12-19
  • 1970-01-01
  • 2021-11-12
相关资源
最近更新 更多