(wixUsers && wixUsers.currentUser && wixUsers.currentUser.id)在Wix代码中是什么意思?



我正在尝试构建一个自定义登录,并发现了这段可能会有所帮助的代码,但我不确定我是否完全理解它。我将尝试解释它,希望有人会告诉我我是否走上了正确的道路,或者他们会纠正我。我对编程(当然还有api(还比较陌生,所以请记住这一点。

首先,我会把它分解。因此wixUsers会导入关于不同类型用户的信息。从文档中,我看到有三种类型的用户:访问者(未登录的用户(、成员(已登录的用户"(和管理员。

currentUser获取包含当前正在查看网站的用户信息的对象。

id获取用户的唯一id。

所以我对if语句的解释是,如果有一个用户,并且当前用户有一个id。

然后,如果这是真的,它会获取当前用户的id,并将其存储在key_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) {

这相当于原始的CCD_ 8校验。

如果找到了id,则将其分配给contactInfo并保存到数据库中。

不过,我更愿意从提取ID开始,而不是重复wixUsers.currentUser.id:

const id = wixUsers?.currentUser.id;
if (id) {
userData.contactInfo._id = id;
// etc

相关内容

最新更新