javascript - 如何将 DOM 元素从 componentDidMount() 传递到另一个文件中定义的另一个函数?
问题描述
我在另一个文件中有一个函数说ABC(),我需要将一些 DOM 元素传递给该函数。但是,如果将 DOM 元素存储在另一个变量中,比如node,然后将其传递给ABC()或者直接将其传递给ABC(),那么在这两种情况下,[object HTMLDivElement]都会作为值存储/传递给ABC()函数.
这是我的 ABC.js 文件。
export function ABC(inputRef) {
console.log(inputRef); // prints [object HTMLDivElement]
// do something
}
这是我的反应文件 XYZ.js。
import React from 'react';
import {ABC} from './ABC.js';
class PrimePage extends React.Component {
constructor (props) {
super(props);
this.textInputRef = null;
this.submitBtnRef = null;
}
componentDidMount() {
this.submitBtnRef.addEventListener('click', (event) => {
console.log(this.textInputRef); // prints <input type="text" id="input-check"> which I need to pass
let node = this.textInputRef;
console.log(node); // prints [object HTMLDivElement]
ABC(this.textInputRef);
ABC(node);
})
}
render() {
return (
<div>
<input type="text" id="input-check" ref={(input) => { this.textInputRef =
input; }}>
<button type="submit" id="submit-btn" ref={(input) => {
this.submitBtnRef = input; }}>Submit</button>
</div>
);
}
}
我想要一种可以将 DOM 元素传递给ABC()函数的方法。基本上我需要一个类似document.getElementById("id")的功能,以便我可以使用ABC.js 文件中ABC()函数内的innerHTML属性来操作 HTML。
解决方案
推荐阅读
- sql - 如何取表数据时分秒
- unity3d - Unity 2D如何避免我的玩家越过敌人
- c# - 为什么在 ToDictionary 中使用 GroupBy 中的密钥时出现“已添加密钥”错误?
- pip - 如何卸载使用 pip3 安装的软件包及其依赖项?
- openwrt - 删除路由 OpenWRT
- android - 从文件中获取内容:// Uri
- node.js - 在使用 http.request 在 node.js 中执行 rest api 调用时出现错误:getaddrinfo ENOTFOUND
- r - 带有预定义标题的excel导入
- android - 列表视图大小适应项目
- javascript - 如何通过将值作为另一个对象的键来创建新对象?