jquery - 让 React 组件与 jQuery 监听器一起工作
问题描述
虽然这不是解决问题的最佳方法,但我确实需要我的 React 应用程序与 jQuery 进行交互,直到我想出一个更好的解决方案。
在我的入口点组件的 HTML 页面中,我有一个简单的 jQuery 监听器——见下文:
<html>
... // Omitted for brevity
<body>
... // Omitted for brevity
<script type="text/javascript">
$(".my-class").on("click", function() {
debugger;
// We'll do something here
})
</script>
</body>
</html>
然后,在我的愚蠢组件中,我有以下内容,但它不起作用。当我单击我的按钮时,我没有达到我在侦听器中设置的断点。
const MyComponent = () => {
return(
<div>
<a href="#" className="btn-primary my-class">Click Me!</a>
</div>
);
}
export default MyComponent;
知道我怎样才能让它工作吗?
解决方案
在准备好的处理程序中添加您的方法:
jQuery(function($) {
// your code here
});
此外,您可以在 componentDidMount 挂钩中调用 jQuery 方法:
componentDidMount() {
// your jQuery code here
}
如果您不想在组件本身中挂钩 jquery 方法而只在 html 中使用,那么您还需要在文件中注入 React 和 ReactDom:
// index.js
import { React } from 'react'
import { ReactDom } from 'react-dom'
import { $ } from 'jQuery'
// index.html
<script src="index.js"></script>
<!-- your jquery hook -->
推荐阅读
- javascript - 从父级删除子时使用类和 id 的问题
- javascript - typescript 从数组的前端和后端获取 X 元素
- database - 企业版 Neo4j 性能不佳
- java - Servlet = 服务器小程序?
- mysql - Mysql:标记从转储表中插入的行
- python - 如何检查一行是否包含列表中的字符串并打印匹配的字符串
- react-native - StackNavigator 菜单未在左侧对齐
- python - 我们如何删除 LinkedList 中的节点,只给它一个指向节点之后的指针?
- javascript - 使用 Javascript 将传入的 URL 参数传递给 iframe src
- css - 反应原生布局 ScrollView over View