javascript - React 不渲染 css 样式

标签 javascript jquery html css reactjs

我正在尝试向我的应用程序添加一个下拉菜单,我选择了 Selectize ( https://github.com/furqanZafar/react-selectize )。但它似乎没有正确显示在页面上。 This is what is looks like ,似乎缺少 css 样式。我是 React 的新手,所以如果这不是一个聪明的问题,请多多包涵。提前致谢!

webpack.config.js

var path = require("path")
var webpack = require('webpack')
var BundleTracker = require('webpack-bundle-tracker')

module.exports = {
  context: __dirname,

  entry: './assets/js/index', 

  output: {
      path: path.resolve('./assets/bundles/'),
      filename: "[name]-[hash].js",
  },

  plugins: [
    new BundleTracker({filename: './webpack-stats.json'}),
  ],

  module: {
    loaders: [
      {test: /\.jsx?$/, exclude: /node_modules/, loader: 'babel-loader', query: { presets:['react'] }}, 
      {test: /\.css$/, loader: 'style-loader'},
      {test: /\.css$/, loader: 'css-loader', query: { modules: true, localIdentName: '[name]__[local]'}},
    ],
  },

  resolve: {
    modulesDirectories: ['node_modules', 'bower_components'],
    extensions: ['', '.js', '.jsx']
  },
}

Dropdown.js

import {ReactSelectize, SimpleSelect, MultiSelect} from 'react-selectize';
import React from 'react';
import 'react-selectize/themes/index.css'


export default class Dropdown extends React.Component {
    render() {
        return (
            <SimpleSelect placeholder="Select a fruit" onValueChange={value => alert(value)}>
                <option value = "apple">apple</option>
                <option value = "mango">mango</option>
                <option value = "orange">orange</option>
                <option value = "banana">banana</option>
            </SimpleSelect>
        )
    }
}

index.js

import Dropdown from "./components/dropdown"

var React = require('react')
var ReactDOM = require('react-dom')

ReactDOM.render(<Dropdown />, document.getElementById('container'))

控制台出现以下错误:

Uncaught Error: addComponentAsRefTo(...): Only a ReactOwner can have 
refs. You might be adding a ref to a component that was not created 
inside a component's `render` method, or you have multiple copies of 
React loaded

最佳答案

对于很多react组件,相关的CSS都包含在npm模块中,但是由于不是JS,所以无法通过import加载。通常样式必须单独加载。

文档说:

to include the default styles add the following import statement to your > stylus file: @import 'node_modules/react-selectize/themes/index.css'

你包括了吗?如果您不使用 Stylus,您可以直接获取 css 并将其粘贴到您的主 CSS 文件中。

关于javascript - React 不渲染 css 样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43671908/

相关文章:

javascript - 脚本不适用于新版本的 jQuery

jquery - 鼠标悬停改变出现的div的位置

javascript - 如何在onclick函数html中传递字符串

javascript - 如何将 graphql 查询发送到远程 url?

javascript - 计算圆上一点的坐标,沿着圆心和圆外另一点之间的线?

javascript - 如何在 CodeIgniter 中使用 jquery 复制隐藏字段值并将其传递到另一个页面?

javascript - 文本区域文本到表格单元格不携带回车符

jquery - 选择表单中的所有其他字段

javascript - 如何在手动修改内容后将内容附加到文本区域

html - 在所有设备上垂直居中标题图像,内容不重叠