(wixUsers && wixUsers.currentUser && wixUsers.currentUser.id) 在 Wix 代码中是什么意思?
What does (wixUsers && wixUsers.currentUser && wixUsers.currentUser.id) mean in Wix code?
我正在尝试构建自定义登录并遇到这段可能有用的代码,但我不确定我是否完全理解它。我将尝试解释它,希望有人会告诉我我是否在正确的轨道上,或者他们会纠正我。我对编程(绝对是 api)还是比较陌生,所以请记住这一点。
首先,我将对其进行分解。
所以 wixUsers 导入有关不同类型用户的信息。从文档中,我看到有三种类型的用户:访问者(未登录的用户)、会员(已登录的用户)和管理员。
currentUser 获取包含有关当前查看站点的用户的信息的对象。
id 获取用户的唯一标识。
所以我对if语句的解释是,如果有一个用户,并且当前用户有一个id。
然后如果为真,它会获取当前用户的 ID 并将其存储在键 _id 的 contactInfo 对象中。据我了解,当您在登录时使用 wixUsers.currentUser.id 时,它是一个随机 ID,它不是与注册时创建的数据库集合中的 contactInfo 相关联的 ID???提前致谢!
if (wixUsers && wixUsers.currentUser && wixUsers.currentUser.id) {
userData.contactInfo._id = wixUsers.currentUser.id;
await wixData.insert("MemberProfileDatabase", userData.contactInfo);
wixLocation.to('/account/my-account/')
}
你已经差不多明白了 - if
语句是用来查看
wixUsers
存在,此时假定为对象,然后检查:
wixUsers.currentUser
存在,此时假定为对象,然后检查
(* wixUsers.currentUser.id
存在
你不能 只是 单独检查 wixUsers.currentUser.id
因为如果 wixUsers
是未定义的,或者如果 currentUser
是未定义的 (或 null),将抛出错误。
也就是说,在较新的环境中(或者如果代码被转译),使用可选链接可以使语法更简单:
if (wixUsers?.currentUser?.id) {
相当于原来的if
检查。
如果找到 id
,则将其分配给 contactInfo
并保存到数据库。
虽然,我更愿意提取 ID 开始,而不是重复 wixUsers.currentUser.id
:
const id = wixUsers?.currentUser.id;
if (id) {
userData.contactInfo._id = id;
// etc
我正在尝试构建自定义登录并遇到这段可能有用的代码,但我不确定我是否完全理解它。我将尝试解释它,希望有人会告诉我我是否在正确的轨道上,或者他们会纠正我。我对编程(绝对是 api)还是比较陌生,所以请记住这一点。
首先,我将对其进行分解。 所以 wixUsers 导入有关不同类型用户的信息。从文档中,我看到有三种类型的用户:访问者(未登录的用户)、会员(已登录的用户)和管理员。
currentUser 获取包含有关当前查看站点的用户的信息的对象。
id 获取用户的唯一标识。
所以我对if语句的解释是,如果有一个用户,并且当前用户有一个id。
然后如果为真,它会获取当前用户的 ID 并将其存储在键 _id 的 contactInfo 对象中。据我了解,当您在登录时使用 wixUsers.currentUser.id 时,它是一个随机 ID,它不是与注册时创建的数据库集合中的 contactInfo 相关联的 ID???提前致谢!
if (wixUsers && wixUsers.currentUser && wixUsers.currentUser.id) {
userData.contactInfo._id = wixUsers.currentUser.id;
await wixData.insert("MemberProfileDatabase", userData.contactInfo);
wixLocation.to('/account/my-account/')
}
你已经差不多明白了 - if
语句是用来查看
wixUsers
存在,此时假定为对象,然后检查:wixUsers.currentUser
存在,此时假定为对象,然后检查 (*wixUsers.currentUser.id
存在
你不能 只是 单独检查 wixUsers.currentUser.id
因为如果 wixUsers
是未定义的,或者如果 currentUser
是未定义的 (或 null),将抛出错误。
也就是说,在较新的环境中(或者如果代码被转译),使用可选链接可以使语法更简单:
if (wixUsers?.currentUser?.id) {
相当于原来的if
检查。
如果找到 id
,则将其分配给 contactInfo
并保存到数据库。
虽然,我更愿意提取 ID 开始,而不是重复 wixUsers.currentUser.id
:
const id = wixUsers?.currentUser.id;
if (id) {
userData.contactInfo._id = id;
// etc