1

我正在尝试使用useLDflex()或从他们的个人资料中读取用户的地址useLDflexValue()

当我运行这个:

const address = useLDflex(`[${webId}].vcard_hasAddress`)?.toString() || 'loading...';
console.log('address: ', address);

控制台显示:

address:  https://<username>.solidcommunity.net/profile/card#id1234567890,false,

我可以在浏览器中访问 URL 并显示地址对象,但是如何在我的代码中直接访问地址对象的内容?我认为有一个函数可以解析地址 URL 并返回内容但找不到它。

谢谢你。任何指向有关此主题的阅读材料的链接也将不胜感激。

4

1 回答 1

1

Solid Profile的vcard:hasAddress谓词指向一个地址资源,该地址资源具有更多的属性,如vcard:country-namevcard:locality

使用 ldflex,您可以使用点符号来“链接”您的查询。因此,这将为您提供地址位置:

[${webId}].vcard_hasAddress.vcard_locality

除了点符号,您还可以使用方括号访问属性。这也适用于包含破折号的属性,例如国家/地区名称:

[${webId}].vcard_hasAddress['vcard:country-name']

使用我的 WebID 在 LDFlex 操场上尝试一下。

如果地址存储在不同的文档中,您需要先查询地址,然后再查询地址属性:

1. [${webId}].vcard_hasAddress
2. [${address}].vcard_locality
于 2021-03-10T12:37:01.887 回答