赋值给常量错误但是赋值给了let

问题描述 投票:0回答:1

我正在尝试导出函数并更改 2 js 代码的变量。 我目前正在处理一个项目,我需要确保用户在访问内容之前已登录 我制作了两个 html,一个用于主页面,一个用于登录。 第一个代码看起来像这样:

import status from '/login.js';

const addhotel = document.getElementById("addhotel");
let online = null;
export default online = false;

addhotel.addEventListener('click', function(){
    
    if(online === true){
        console.log("You Can Add")
    }else{
        addhotel.setAttribute("href", "/loginForm.html")
        setTimeout(function(){submit()}, 10000)
    }
})

第二个是这个:

import online from '/app.js'

export const user = document.getElementById("user");
export const pass = document.getElementById("pass");
export const submit = document.getElementById("submit");
export let loggedIn = false;
export let id = 0;

submit.addEventListener("click", function(){
    fetch("http://127.0.0.1:3000/users")
    .then((res) => {
        return res.json()
    }).then((data) => {
        if(user.value == data[0].user && pass.value === data[0].pass){
            console.log("welcome", data[0].user)
            loggedIn = true;
            id = data[0].id
        }
        else if(user.value == data[1].user && pass.value === data[1].pass){
            console.log("welcome", data[1].user)
            loggedIn = true;
            id = data[1].id
        }       
        else if(user.value == data[2].user && pass.value === data[2].pass){
            console.log("welcome", data[2].user)
            loggedIn = true;
            id = data[2].id
        }       
        else{
            user.style.border = "2px solid red"
            pass.style.border = "2px solid red"
        }
    })
    setTimeout(function(){status()}, 1000);
})

export default function status() {
    if(loggedIn === true){
        online = true;
    }else{
        online = false;
    }
}

当在线变量被声明为 let 时我仍然会出错 谁能帮帮我??

javascript html import export
1个回答
0
投票

导入是导出模块中变量的“只读”实时连接,这意味着您不能改变导入的变量(即使它是用

let
声明的)但可以看到变量发生的变化。

如果你想更新导出模块的变量,只需创建一个函数来为你做这件事并将它也导出。喜欢:

// Exporting Module
export let qty = 1;
export const increaseQty = () => qty++;
// Importing Module
import {qty, increaseQty} from './pathToExportingModule.js';

console.log(qty); // 1
increaseQty();
console.log(qty); // 2

在您的代码示例中,您试图在您正在导入的模块中改变

online
变量,这给了您错误。创建一个函数来更改导出模块中的
online
变量,并在导入模块中使用该函数。

© www.soinside.com 2019 - 2024. All rights reserved.