我想向Neo4J中的节点添加URL属性。 问题在于该URL不可单击。 有没有办法让它在Neo4J中呈现和可点击?
答案 0 :(得分:1)
假设您正在谈论Neo4j仪表板,我将回答这个问题。 他们当前提供的自定义样式适用于包含以下节点和关系的图形组件:Grass Styling
下面的属性栏中的属性值未提供。
我看到实现这一目标的两种方法:
第一
如果它能吸引更大的受众,则正确的方法是编辑Neo4j browser代码以进行这些更改。 该浏览器实际上是使用React制作的。一旦弄清楚了组件和代码实际呈现了节点的属性,就可以对其进行编辑以将URL显示为链接。
第一步: 通过使用inspect元素找到属性状态栏的类,我能够缩小呈现此代码的代码的范围。在您的情况下,文件为: inspector.jsx,我们正在寻找的组件是 StyledInspectorFooterRowListPair 。您可以从检查元素中找出答案。
第二步: 我们看到 StyledInspectorFooterRowListPair 正在使用 mapItemProperties 来呈现键值对。因此,只需修改该方法即可解决问题。
const mapItemProperties = itemProperties =>
itemProperties
.sort(
({ key: keyA }, { key: keyB }) =>
keyA < keyB ? -1 : keyA === keyB ? 0 : 1
)
.map((prop, i) => (
<StyledInspectorFooterRowListPair className='pair' key={'prop' + i}>
<StyledInspectorFooterRowListKey className='key'>
{prop.key + ': '}
</StyledInspectorFooterRowListKey>
<StyledInspectorFooterRowListValue className='value'>
{ prop.key =="link"
? <a href={optionalToString(prop.value)}>{optionalToString(prop.value)}</a>
: optionalToString(prop.value)
}
</StyledInspectorFooterRowListValue>
</StyledInspectorFooterRowListPair>
))
如果节点属性名称为“ link”,则下面提到的代码实际上负责呈现link元素。您可以使用任何其他喜欢的逻辑。 这是一个例子。
{ prop.key =="link"
? <a href={optionalToString(prop.value)}> {optionalToString(prop.value)}
</a>
: optionalToString(prop.value)
}
第3步 使用存储库中提到的步骤来启动项目。
第二
如果仅适合您,则可以创建一个简单的浏览器扩展程序,将这些属性更改为链接。