gpt4 book ai didi

javascript - 有没有办法在单击 "non react"dom 元素时调用组件方法

转载 作者:行者123 更新时间:2023-12-03 01:15:01 24 4
gpt4 key购买 nike

这是场景。我使用jQuery Datable 插件创建了表格。在最后一列中,所有行都有一个按钮(一个非 react HTML 元素)。由于表格的所有 HTML 都是由插件自动创建的,因此我们不能对按钮使用 JSX 组件,因此不能使用 onClick react 监听器。

这是我目前正在做的事情:

在我的常规脚本文件中(非 react ):

$(document).on("click", ".my-button", function(){
//show a popup and add content in it using ajax
});

这是我想在 react 代码中做同样的事情(即在主组件类中)

class LoginForm extends  React.Component {
constructor(props) {
super(props);
}

//following method is to be called on onClick
showAPopupAndAddContentAjax() {
//code
}

//other stuff
}

那么有什么方法可以调用任何react监听器方法吗?或者有什么不同的方法来实现这一目标?

PS:我现在无法删除数据表代码,因为它已经编写并且现在无法替换。只需要像 onClick

这样的听众

最佳答案

通常情况下,你不能这样做。因为 React 基于 virtual-dom 概念,并且您希望与核心 dom 交互。

一个棘手的方法是添加类并触发弹出窗口打开:

$(document).on("click", ".my-button", function(){
$('#your_instance_of_component').addClass('open-popup');
});

// in your react app
const openPopup = ReactDOM.findDOMNode(LoginForm)
.getElementsByClassName('open-popup')//[0]

// implement the logic
if(openPopup.length) {
// do the stuff
}

希望,这有帮助!

<小时/>

更新

我刚刚有了另一个想法,效果很好:

在 jQuery 监听器中,添加查询参数。在 React 应用程序中,您可以在路由更改时调用 dom 监听器。你必须为此付出努力并进行一些研究。希望这现在有帮助!

关于javascript - 有没有办法在单击 "non react"dom 元素时调用组件方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52056631/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com