我正在尝试从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并返回内容,但找不到它。
谢谢。如能提供与此主题相关的阅读材料的链接,我将不胜感激。
固态配置文件的vcard:hasAddress
谓词指向一个地址资源,然后具有进一步的属性,如vcard:country-name
和vcard:locality
。
使用ldflex,您可以使用点符号来"链接"。你的查询。这会给你地址locality:
[${webId}].vcard_hasAddress.vcard_locality
除了点表示法,你还可以用方括号访问属性。这也适用于包含破折号的属性,如country-name:
[${webId}].vcard_hasAddress['vcard:country-name']
用我的webbid在LDFlex操场上试试吧。
如果地址存储在另一个文档中,则需要先查询地址,然后再查询地址属性:
1. [${webId}].vcard_hasAddress
2. [${address}].vcard_locality