我想永久地重复一个"If“查询,以检索一条信息并执行相应的操作。
这应该用于仅在用户登录时显示内容。目前,页面一加载,查询就会发生一次。问题是,当用户在页面加载后登录时,内容不会出现,必须重新加载页面。这是我当前的代码:
import wixUsers from 'wix-users';
$w.onReady( () => {
if (wixUsers.currentUser.loggedIn) {
$w('#html1').show();
$w('#button17').show();
$w('#box9').hide();
$w('#button29').show();
}
else {
$w('#html1').hide();
$w('#button17').show();
$w('#box9').show();
$w('#button29').hide();
}
});怎么可能总是检查这个呢?这个问题的解决方案可能相对简单,但我对jQuery了解不多。感谢您的支持!
发布于 2021-09-12 10:34:42
如果您希望代码在成功登录后运行,那么尝试wixUsers.onLogin (这需要在onReady函数内部运行)。
import wixUsers from 'wix-users';
wixUsers.onLogin((user) => {
let userId = user.id;
let isLoggedIn = user.loggedIn;
let userRole = user.role;
} );您应该能够通过添加以下内容将代码片段集成到您的代码中:
import wixUsers from 'wix-users';
function toggleLoginState(isLoggedIn) {
if (isLoggedIn) {
$w('#html1').show();
$w('#button17').show();
$w('#box9').hide();
$w('#button29').show();
}
else {
$w('#html1').hide();
$w('#button17').show();
$w('#box9').show();
$w('#button29').hide();
}
}
$w.onReady(() => {
toggleLoginState(wixUsers.currentUser.loggedIn); // Set default state once page has finished loadading.
wixUsers.onLogin((user) => {
toggleLoginState(user.loggedIn); // This should always be true.
});
});有关更多详细信息,请参阅documentation https://www.wix.com/velo/reference/wix-users/onlogin
https://stackoverflow.com/questions/69150433
复制相似问题