javascript - 当使用 ReactDOMServer 和 innerHTML 时,JavaScript 函数调用在表格下拉列表中不起作用
问题描述
JavaScript 函数调用在由 innerHTML 添加到 DOM 的表下拉列表中不起作用
employeesRetrieval = e => {
axios.post('http://localhost:5000/employeesRetrieval')
.then( res => {
let totalActiveEmployees = res.data[0];
let activeEmployeesAdder = ``;
totalActiveEmployees.forEach( ele => {
let role = '';
if(ele.empRole === 0){
role = 'Admin';
}else{
role = 'Employee';
}
activeEmployeesAdder += ReactDOMServer.renderToString(
<tr>
<td>{ele.empId}</td>
<td>{ele.empName}</td>
<td>{ele.empEmail}</td>
<td>{role}</td>
<td className = "editColumn">
<div className="btn-group">
<button className="noCaret" data-toggle="dropdown" title = "Edit">
<MoreVertical className = "editIcon" id = "editIcon"/>
</button>
<ul className="dropdown-menu" role="menu">
<li className = "dropdown-item" role = "button" name = {ele.empId} onSelect = {() => this.showEmployeeUpdateModal('active', ele.empId)}>Edit details</li>
<li className = "dropdown-item" role = "button" name = {ele.empId} onSelect = {() => this.directEmployeeStatusChange('inactive', ele.empId)}>Make inactive</li>
</ul>
</div>
</td>
</tr>
);
});
document.getElementById('activeEmployeesLoader').style.display = "none";
document.getElementById('activeEmployeesTableContent').innerHTML = activeEmployeesAdder;
打开下拉菜单后:
单击它们后没有响应或错误。我尝试更改所有内容,例如 onClick 属性并将ul和li更改为选择和选项标签。似乎没有什么对我有用。
两个功能:
showEmployeeUpdateModal = (e, id) => {
console.log('INSIDE THE FUNCTION');
/*
SOME LOGIC
*/
};
directEmployeeStatusChange = (e, id) => {
console.log('INSIDE THE FUNCTION');
/*
SOME LOGIC
*/
};
解决方案
您正在使用ReactDOMServer.renderToString
包含事件侦听器的代码块。
顾名思义,renderToString
它为您提供纯 HTML,因此事件处理程序不会像编写的那样工作。
推荐阅读
- java - Android Studio 新手包传递
- python - Comparisons between an arbitrary number of lists of arbitrary length Python
- firebase - 带有 Repository/Firestore 的 MVVM - 存储来自单个集合的不同查询数组的最佳位置在哪里?
- api - ASP.NET Core Web API 在生产中不显示错误 500
- python - duplicating rows by splitting comma separated multiple values in another column pandas
- python - 将 python 列表作为参数传递给 MySQL.connector
- amazon-web-services - 从帖子正文读取时,AWS API 网关 CORS 错误
- go - 如何提高 go 库方法的可测试性
- xml - 使用 xslt 并排显示两个 xml 文件的内容
- c - 实现一个 reverse 函数来反转一个整数,但这里的输出总是 0