javascript - 使用react-materialize遇到错误 “ReferenceError: $ is not defined”

标签 javascript jquery reactjs materialize

我对 React/Webpack 比较陌生,我想应用 Materialise CSS,但我收到了关于在我的代码中无法识别 jQuery 的错误。我不知道从哪里开始。

我有一个简单的 React 组件,如下所示:

src/组件/标题

import React, { Component } from 'react';
import { Navbar, NavItem } from 'react-materialize';
export default class Header extends Component {
  render() {
    return (
      <Navbar brand='logo' right>
        <NavItem href='get-started.html'>Getting started</NavItem>
        <NavItem href='components.html'>Components</NavItem>
      </Navbar>
    );
  }
}

package.json

{
  "name": "redux-simple-starter",
  "version": "1.0.0",
  "description": "Simple starter package for Redux with React and Babel support",
  "main": "index.js",
  "repository": "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="aec9c7daeec9c7dac6dbcc80cdc1c3" rel="noreferrer noopener nofollow">[email protected]</a>:StephenGrider/ReduxSimpleStarter.git",
  "scripts": {
    "start": "node ./node_modules/webpack-dev-server/bin/webpack-dev-server.js",
    "test": "mocha --compilers js:babel-core/register --require ./test/test_helper.js --recursive ./test",
    "test:watch": "npm run test -- --watch"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "babel-core": "^6.2.1",
    "babel-loader": "^6.2.0",
    "babel-preset-es2015": "^6.1.18",
    "babel-preset-react": "^6.1.18",
    "chai": "^3.5.0",
    "chai-jquery": "^2.0.0",
    "jquery": "^2.2.1",
    "jsdom": "^8.1.0",
    "mocha": "^2.4.5",
    "node-sass": "^3.8.0",
    "react-addons-test-utils": "^15.3.1",
    "webpack": "^1.13.2",
    "webpack-dev-server": "^1.14.0"
  },
  "dependencies": {
    "babel-preset-stage-1": "^6.1.18",
    "css-loader": "^0.24.0",
    "jquery": "^2.2.4",
    "lodash": "^3.10.1",
    "materialize-css": "^0.97.7",
    "node-sass": "^3.8.0",
    "react": "^15.3.1",
    "react-bootstrap": "^0.30.3",
    "react-dom": "^15.3.1 ",
    "react-materialize": "^0.15.2",
    "react-redux": "^4.0.0",
    "react-router": "^2.0.1",
    "redux": "^3.0.4",
    "sass-loader": "^4.0.0",
    "shortid": "^2.2.6",
    "style-loader": "^0.13.1"
  }
}

webpack.config.js

var path = require('path');
module.exports = {
  entry: [
    './src/index.js'
  ],
  output: {
    path: __dirname,
    publicPath: '/',
    filename: 'bundle.js'
  },
  module: {
    loaders: [{
      exclude: /node_modules/,
      loader: 'babel',
      query: {
        presets: ['react', 'es2015', 'stage-1']
      }
    },{
      test: /\.s?css$/,
      loaders: ['style','css','sass'],
      include: path.join(__dirname, 'src')
    }]
  },
  resolve: {
    extensions: ['', '.js', '.jsx'],
    alias: {
    'jquery': path.join(__dirname, 'node_modules/jquery/dist/jquery'),
    }
  },
  devServer: {
    historyApiFallback: true,
    contentBase: './'
  }
};

错误消息:

Uncaught ReferenceError: $ is not defined

index.html

<!DOCTYPE html>
<html>
  <head>
    <link rel="stylesheet" href="http://fonts.googleapis.com/icon?family=Material+Icons">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.6/css/materialize.min.css">
  </head>
  <body>
    <div id="fcc">
      <div class="container"></div>
    </div>
  </body>
  <script src="/bundle.js"></script>
  <script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.6/js/materialize.min.js"></script>
</html>

最佳答案

尝试包含 <script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>之前<script src="/bundle.js"></script> .

JQuery 在bundle.js 中使用,但尚未定义。

关于javascript - 使用react-materialize遇到错误 “ReferenceError: $ is not defined”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39258800/

相关文章:

每个循环的 Javascript

javascript - 自动进度输入字段在 Firefox 中删除 '0' s

html - 如何更改 jQuery 动画中的文本颜色?

javascript - 为什么在 React 组件中调用了两次 `Promise.then` 而不是 console.log?

javascript - 在javascript中读取sql查询输出

javascript - 检查点是否位于两组坐标之间

javascript - 如何简化元素搜索方法?

javascript - 模块化 CSS 样式不起作用

JavaScript:获取对象实例以包含扩展变量

javascript - 为什么这个 JavaScript 并不总是有效?