如何在 React 中集成 jQuery 插件

2023-11-25

我想用https://github.com/t1m0n/air-datepicker在 React 应用程序中使用,但它不起作用。

import React from 'react';
import AirDatepicker from 'air-datepicker';

class Datepicker extends React.Component {
  render() {
    return(
      <AirDatepicker />
    )
  }
}

export default Datepicker;
`
<script src="./../bower_components/jquery/dist/jquery.min.js"></script>

这会产生:

error($ is not defined)

另一种方法:

import React from 'react';
import $ from 'jquery';
import AirDatepicker from 'air-datepicker';

class Datepicker extends React.Component {
  render() {
    return(
      <AirDatepicker />
    )
  }
}

export default Datepicker;

同样的错误。

如何将 jQuery 插件与 React 集成?


首先air-datepicker 不是 React 组件,它是 jQuery 插件,因此它不会像您的示例中那样工作。

其次,为了正常工作,jQuery 应该在全局上下文中可用,最简单的方法是将其包含到页面中<script>标签。应该包括在内before插件脚本。

要检查它是否真的包含在内并且在全球范围内可用,只需在 Chrome 控制台中输入window.jQuery并按Enter它应该返回类似的东西function (a,b){...}。如果没有,当你做错事时,检查一下src的属性<script>标签,也许它指向错误的目的地

如何让它在 React 中工作?

嗯,最简单的方法就是在组件中的任何 DOM 元素上初始化插件,就像在常规 JavaScript 中一样。

class MyComponent extends React.Component {
  componentDidMount(){
    this.initDatepicker();
  }
  
  initDatepicker(){
    $(this.refs.datepicker).datepicker();
  }
  
  render(){
    return (
      <div>
        <h3>Choose date!</h3>
        <input type='text'  ref='datepicker' />
      </div>    
    )
  }
}

ReactDOM.render(
  <MyComponent />,
  document.getElementById('app')
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/air-datepicker/2.2.3/js/datepicker.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/air-datepicker/2.2.3/css/datepicker.min.css" rel="stylesheet"/>

<div id="app"></div>

作为单独的组件

非常简单的 datepicker React 组件示例

class Datepicker extends React.Component {
  componentDidMount(){
    this.initDatepicker();
  }
  
  initDatepicker(){
    $(this.refs.datepicker).datepicker(this.props);
  }

  render(){
    return (
      <input type='text' ref='datepicker'/>
    )
  }
}


class MyComponent extends React.Component {
  render(){
    return (
      <div>
        <h3>Choose date from React Datepicker!</h3>
        <Datepicker range={true} />
      </div>    
    )
  }
}

ReactDOM.render(
  <MyComponent />,
  document.getElementById('app')
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/air-datepicker/2.2.3/js/datepicker.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/air-datepicker/2.2.3/css/datepicker.min.css" rel="stylesheet"/>

<div id="app"></div>

也不要忘记包括css files.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 React 中集成 jQuery 插件 的相关文章

  • 如何通过setTimeout函数定期打印数字?

    var i 0 function counter for i i lt 100 i setTimeout gt console log i 2000 counter 我想以 2 秒的间隔打印 i 但它立即打印 每次打印调用只需要几微秒 为什
  • 使用javascript以编程方式触发iOS safari中的复制菜单?

    我正在尝试实现一种用户友好的方式 将一些文本从文本输入字段复制到 iOS Safari 上的剪贴板 我知道无法在这个平台上以编程方式完成此操作 但我希望能够尽可能地指导用户体验 在 iOS Safari 上 当用户手动突出显示某些文本时 会
  • .points 不透明度/大小在三个.js 内

    我回来回答有关 points 的第二个问题 这次想知道如何将不透明度从 0 更改为 1 然后又回到距发射器的特定像素距离内 var particleCount 14 particles new THREE Geometry pMateria
  • 通过 JavaScript 单击按钮/页面提交

    我想了解 asp net 框架如何知道何时单击了按钮 因此一旦收到请求 就会在服务器上触发其单击事件 我需要了解它是如何工作的 因为我想从 JavaScript 触发按钮的服务器单击事件 我能够从 JavaScript 执行页面提交 doc
  • iphone jquery 移动闪烁问题

    我在 iPhone 上使用使用 jQuery mobile 开发的应用程序时遇到闪烁问题 我尝试了互联网上提供的几种解决方案 包括 CSS 更改 将过渡设置为 无 甚至在 jquerymobile js 中注释代码 但没有运气 我使用的 J
  • .removeClass 从所有元素(相对于单个定义的元素)

    我将如何使用 removeClass 删除所有匹配的类 而不是单独调用每个元素 所以代替这个 input removeClass CO form alert select removeClass CO form alert input se
  • 返回视图作为 JSON 对象的一部分

    我有一个应用程序只加载一次完整视图 我这样做的原因并不重要 重要的是 其余内容只会以部分视图的形式返回 除了一些内容之外 我还有一些 JSON 对象 我想通过每个 AJAX 请求在服务器之间来回传递 有没有办法返回一个 JSON 对象 并将
  • Angular 4 Http POST 不起作用

    我希望每个人都做得很好 我最近开始使用 Angular 4 4 我一直在尝试将数据发布到我的 api 服务器 但不幸的是它不起作用 我花了大约两天的时间 但仍然没有成功 甚至已经尝试过 6 7 篇文章角 io https angular i
  • 可以禁用幻灯片的触摸模拟但不能禁用滚动条(危险的滑动器)吗?

    我的页面上有一个危险的滑动器 它成功地模拟了幻灯片和随附滚动条上的触摸事件 允许单击鼠标并移动以向左或向右滑动幻灯片 这很好 但我现在在滑动器内的幻灯片上调用了可拖动 这意味着我需要停止此触摸模拟 拖动幻灯片并同时移动它们会引起混乱 但仅限
  • 在反应中访问回调内的 event.target

    我有以下课程片段 constructor props super props this timeout null search e gt clearTimeout this timeout this timeout setTimeout f
  • 禁用复选框上的输入

    需要在取消选中该复选框时禁用输入 并在选中该复选框时启用它 我的代码是这样的 div class y div
  • Google 地图 API - 地图未显示 - 没有错误

    我正在尝试将地图从 Google API 加载到 div 中 但是 地图未加载 并且没有输出任何错误 这是代码 google maps var geocoder map function codeAddress address geocod
  • React Redux - 在辅助函数中访问现有存储

    我试图在反应组件之外获取存储实例 存储状态 即在单独的辅助函数中 我有我的减速器 我的动作 我在最上面的组件中创建了一个商店 configStore js import createStore from redux import gener
  • 如何在 TypeScript 中使用 navigation.replace ?

    我试图在我的代码中使用它 const navigation useNavigation navigation replace AllFriends 但我不断收到错误消息 Property replace does not exist on
  • Three.js点击单个粒子

    In this example http jsfiddle net agqq96bq 2 您可以看到 2 个可点击的粒子 但它们都受到点击的影响 另外 我只想检测粒子上的点击 而不将它们过滤出场景 像这儿 if intersects len
  • 触发 jQuery UI 滑块事件

    如何触发更改事件jQuery UI 滑块 http docs jquery com UI Slider 我以为会是 slider trigger slidechange 但这没有任何作用 完整的示例脚本如下
  • Vue - 调度完成后调用 store getter?

    我正在使用 Laravel 5 7 Vue2 Vuex 我在调度调用完成后让 Vue 返回存储值时遇到一些困难 我的申请流程如下 我单击一个提交按钮 该按钮调用组件上的 validate Validate 分派到我的 addLease 操作
  • 将 html 文本框的值分配给 div 的标题

    line 1
  • 将网站加载到 DIV 中

    当我在文本框中写入 URL 然后单击提交按钮时 如何实际从网站检索数据 我希望将数据放入我拥有的 div 中 这可能吗 我已经尝试过这个 但它不起作用
  • JavaScript 阶乘防止无穷大

    我一直在 JavaScript 中使用这个函数来计算阶乘数 var f function factorial n if n 0 n 1 return 1 if f n gt 0 return f n return f n factorial

随机推荐

  • 高效的Python IPC [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我正在Python3中制作一个应用程序 它将分为batch and gui部分 Batch负责处理逻辑和gui负责显示它 Which 进程间通信 I
  • 如何将微调器添加到 ActionBar?

    我试图让我的微调器作为操作栏下拉列表项工作 但我似乎根本无法实现它 在谷歌搜索后没有太多关于此的教程 我认为它与 setListNavigationCallbacks 有关行代码 我只是不知道如何从该行开始工作 setup action b
  • 倒计时器 - iPhone [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 我想显示倒计时器 我有开始日期和结束日期 我需要显示剩
  • python中大数的阶乘

    这是我的阶乘方法 def factorial n Returns factorial of n r 1 for i in range 1 n 1 r i return r 我认为这非常简单 但我猜你可以做得更有效 因为像 100000 这样
  • 为什么当Windows服务停止时调用base.OnStop()?

    我正在创建一个 C Net Windows 服务 想知道您是否总是需要调用base OnStop 在服务的OnStop 方法以及为什么 protected override void OnStop threadRunning false t
  • 为什么要将 stdin、stdout 和 stderr 设置为单个 fd?

    我从 APUE 看到了这个代码片段 dup2 fd 0 dup2 fd 1 dup2 fd 2 if fd gt 2 close fd 在我的理解中 它使 stdin stdout 和 stderr 都指向 fd 它说很多程序都包含此代码
  • Rails Accepts_nested_attributes 计数验证

    我有三个型号 销售 商品和图像 我想验证创建销售时 每个销售至少有三张照片和一件或多件商品 实现这一目标的最佳方法是什么 销售模式 class Sale lt ActiveRecord Base has many items depende
  • 如果我点击此处地图中的不同标记,如何删除以前的信息气泡?

    下面是我添加信息气泡的代码 我想在单击 点击 不同的标记后删除当前的信息气泡 function addInfoBubble map var group new H map Group map addObject group add tap
  • Sprite Kit - 将两个物理体添加到一个 SKNode

    是否可以将两个 或更多 SKPhysicsBody 添加到一个 SKNode 中 与此类似的东西 物理编辑器的示例因为角色的头部应该与球碰撞 所以顶部应该是圆形的 此外 球不得穿过球员 您知道如何实现这一目标吗 As the physics
  • 重复的键值违反了 django 中的唯一约束

    我有在 django 中创建新用户的功能 如下所示 def initialize username password email title firstName lastName telephoneNumber mobileNumber s
  • ASP.NET MVC 3 模型绑定和表单字段

    我有一个名为Domain Models BlogPost其中包含以下属性 PostID Title Author 发表日期 Body 我还有一个名为Domain Models PostComment其中包含以下属性 评论ID PostID
  • Android 应用内多次购买

    有没有办法使用应用内购买购买超过 1 件商品 例如 我可以购买 2 件相同的商品吗 创建多个产品不是正确的答案 因为如果你计划出售游戏内的金钱或 健康药水 这些东西可以无限次购买 请参阅有关的答案托管 非托管产品来纠正处理这种情况
  • order_by() 不适用于 Django 视图中的 filter()

    我的型号 class Bild models Model album models ForeignKey Album slot models IntegerField bild models ImageField upload to bil
  • 在下一个js中平滑滚动

    如何在 Next js 中将滚动效果设置为平滑 全局 我尝试在全局 css 上执行此操作 但它停用了 Next js 已有的滚动到顶部功能 我也尝试了在互联网上找到的这个解决方案 但它也不起作用 componentDidMount Rout
  • 复制 EXCEL 单元格 x 次

    我有一列大约有 1000 个 IP 地址 我需要在一列中打印 5 次 例如 10 10 10 1 10 10 10 2 10 10 10 3 10 10 10 4 应该成为 10 10 10 1 10 10 10 1 10 10 10 1
  • 查找字符串数组中最长的字符串

    问题是我尝试这样做 但我检查字符串长度的方法不起作用 我能做什么来修复它 public static void main String args String animalNames cat rabbit horse goat rooste
  • “资源”不包含“动画”的定义

    因此 我目前正在评估来自 telerik 的 Xamarin Forms 和 XamarinForms UI 的试验 不幸的是 一旦我将库链接到 telerik dll 我就会得到一个混乱的 Resource Designer cs 文件
  • 保持 Rtsp 连接活动

    我有一个简单的 Rtsp 客户端 客户端将 Rtsp 命令发送到 Rtsp 服务器并从服务器获取 RTP 数据包 问题是一段时间 大约 3 4 分钟 后我的第 3 方 RTSP 服务器断开与我的 RTSP 客户端的连接 我还没有实现 RTC
  • ArrayAdapter 数据集中的元素数量为零

    我正在尝试构建一个带有自定义行视图的列表 每行将包含一个图像视图和两个文本视图 为此 我扩展了 ArrayAdapter 类 称为 PostersArrayAdapter 并重写了 getView 方法 以便在数据和行布局之间建立正确的连接
  • 如何在 React 中集成 jQuery 插件

    我想用https github com t1m0n air datepicker在 React 应用程序中使用 但它不起作用 import React from react import AirDatepicker from air dat