javascript - 如何将 Chosen 合并到我的 React 项目中?

标签 javascript node.js reactjs jquery-chosen

我想使用 jquery 插件 Chosen在我的项目中。我通过 npm 安装了 jQuery 和 Chosen:

npm i jquery chosen-js -S

这两个库现在都在我的 node_modules 文件夹中。不幸的是,当应用程序尝试编译时,我不断收到错误消息:ReferenceError: jQuery is not defined

这是我调用 Chosen 库的地方:

import React from "react";
import ReactDom from "react-dom";
import $ from "jquery";
import "chosen-js/chosen.css";
import "chosen-js/chosen.jquery.js";

class App extends React.Component {
  componentDidMount() {
    $(this.refs.list).chosen();
  }

  render() {
    return (
      <select ref="list">
        <option>vanilla</option>
        <option>chocolate</option>
        <option>strawberry</option>
      </select>
    );
  }
}

ReactDom.render(, document.getElementById("app"));

这是错误的图片: enter image description here

最佳答案

我也在 Udemy 上回答了你的问题。 如果你真的想认真对待你的 React 事业,你需要最终停止使用 jQuery。

我制作了非常复杂的选择组件,甚至使用来自 API 的数据,使用 react-select。我建议使用 React Select 来满足您的所有选择需求,它是一个强大的组件,将改变您的生活。

如果您仍然觉得必须使用 chosen.js,那么编辑 'chosen-js/chosen.jquery.js' 并添加 import 语句或 require 语句,例如

import jQuery from 'jquery' // or
const jQuery = require('jquery');

这样引用错误就消失了。然而,如果你考虑一个严肃的前端职业,你需要明白 jQuery 已经死了,严肃的应用程序不会为了简单的膨胀和冗余问题而同时使用 React 和 jQuery

关于javascript - 如何将 Chosen 合并到我的 React 项目中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45664351/

相关文章:

php - 动态加载的缩略图显示其他缩略图的全尺寸图像而不是它自己的(使用 javascript 悬停效果)

javascript - 如何 gitignore 快照文件夹?

node.js - 将 multer 和express 与 typescript 结合使用

reactjs - 为什么箭头函数可以工作但常规函数不能 React JS

javascript - 获取动态填充的输入值 React.js

javascript - 季度日期选择器

javascript - 如何在 FancyTree 中建立链接

javascript - 将带有参数的函数添加到 Array Javascript (Node.js)

node.js - Node gm - 使用裁剪和调整大小会导致错误

reactjs - 如何在 React + TypeScript 中设置 Prop 类型