reactjs - 当孩子在'cp-react-tree-table'中展开/折叠时如何切换箭头
问题描述
我正在尝试使用反应插件“cp-react-tree-table”创建一个树表。我能够很好地渲染表格。但插件不提供显示指示箭头的选项(项目展开/折叠)
这是原始插件的示例: https ://jsfiddle.net/constantin_p/wzjgspe9/
renderIndexColumn = (data, metadata, toggleChildren) => {
return (
<div style={{ paddingLeft: (metadata.depth * 25) + 'px'}} className="cell-wrapper">
<span className="toggle-button-wrapper" style={{ width: '80px'}}>
{(metadata.hasChildren)
? (
<span onClick={toggleChildren}>[toggle]</span>
)
: ''
}
</span>
<span>{data.name}</span>
</div>
);
}
我对其进行了修改以显示指示性箭头。
但是现在在基于节点展开或折叠切换箭头时遇到了麻烦。
这是修改后的代码:https ://jsfiddle.net/5yvgbrtk/
renderIndexColumn = (data, metadata, toggleChildren) => {
return (
<div style={{ paddingLeft: (metadata.depth * 25) + 'px'}} className="cell-wrapper">
<span className="toggle-button-wrapper" style={{ width: '80px'}}>
{(metadata.hasChildren)
? (
<span onClick={(event) => {toggleChildren(); this.arrowChange(event)}}>
<i className="material-icons">arrow_right</i>
</span>
)
: ''
}
</span>
<span>{data.name}</span>
</div>
);
}
arrowChange = (event) => {
event.target.classList.toggle('expanded')
};
当前的解决方案仅在每个打开的节点都关闭时才有效(单击时图标切换)。当关闭外部节点而不关闭内部节点时,这会产生问题。
有没有一种方法可以识别节点的子节点是否显示/隐藏,据此我可以更改箭头图标。
我知道这个问题是针对插件的,不是很通用。但任何帮助将不胜感激。谢谢
解决方案
根据请求,此功能现已添加到最新版本的 cp-react-tree-table中。
现在添加了一种新方法 - 'hasVisibleChildren' 来检查和切换箭头。
摆弄更新的功能:https ://jsfiddle.net/constantin_p/Lystd2j9/
<i className="material-icons">
{metadata.hasVisibleChildren ? 'arrow_drop_down' : 'arrow_right' }
</i>
推荐阅读
- angular - 选项卡更改上的 Rxjs 间隔变慢
- google-sheets - GoogleSheet:IMPORTXML 错误,找不到 url 的资源?
- javascript - 如何在节点 js 中使用用户身份验证访问 UNC 文件路径
- javascript - 尝试在 js 中拆分 url 时出现问题
- ios - 将数据从 tableview 传递到另一个 tableview
- python - 正在添加的空白帖子,以及用户创建的帖子 (Django)
- python - message.content.startswith Discord.Py
- javascript - 使用 jquery 每个读取 html 表行中的值
- java - 设置工作目录 Spring Boot 可执行 jar
- python - 使用 CTRL_C_EVENT 关闭 QProcess 后忽略 KeyboardInterrupt