react-native - 如何从 react-native-render-html 中删除标签?
问题描述
如何删除h2
只有标签的<br>
标签?
<h2><br></h2>
解决方案
你可以使用alterChildren
prop 删除一些 DOM 节点:
const html = `
<body>
<h2>Hello world</h2>
<p>Lorem ipsum</p>
<h2><br></h2>
</body>
`;
function hasOnlyBrChildren(node) {
return node.children.every(
(child) => child.type === 'tag' && child.name === 'br'
);
}
function alterChildren(node) {
return node.children.filter(
(child) =>
child.type !== 'tag' ||
!(child.name === 'h2' && hasOnlyBrChildren(child))
);
}
export default function App() {
return (
<ScrollView>
<HTML alterChildren={alterChildren} html={html} />
</ScrollView>
);
}
我这里做了点心(我只是替换br
为div
直观评估功能的有效性):https ://snack.expo.io/@jsamr/rnrhtml-alter-children
推荐阅读
- java - 应为 BEGIN_ARRAY,但在第 1 行第 1 列路径为 STRING
- r - 如何通过ggplot2调整errobar在堆栈条图中的位置
- python - 索引转换为熊猫日期时间后,绘图图表是一团糟
- postgresql - 无法检查域约束中的空文本
- javascript - 为什么我的 JS 按钮在单击时没有更新任何内容?
- python - Django + Gunicorn + Nginx 不会重新加载旧的静态文件
- python-3.x - 如何在 Python 中加入两个数据框时避免重复条目?
- google-cloud-platform - 带有 Debian 映像的 GCP 计算引擎的默认用户密码是什么?
- python-3.x - 如果 Pandas 中包含全零或 NaN,则返回列名
- blazor - Blazor 使用双精度设置组件位置使用逗号而不是点(10,5% 而不是 10.5%)