我正在与VITE合作一个普通的JS项目,我发现了以下错误:

我有一个app.js文件,在其中我用命令let初始化了一个变量并将其导出

let activePoint = null;
export { activePoint };

然后,我有另一个JS文件(TOOL.js),在其中我使用以下命令导入变量:

import { activePoint } from '../js/app.js'

当我try 在文件TOOL.js中修改所述变量(例如:activePoint=4;)时,我收到错误Uncaught TypeError: Assignment to constant variable.

我都试过letvar,在行为上没有什么区别.我还try 在一行与两行中进行初始化和导出,但也没有区别.我是否遗漏了将变量转换为常量的VITE行为?

推荐答案

MDN人起:

静态导入声明用于导入由另一个模块导出的只读活动绑定.导入的绑定称为活动绑定,因为它们由导出绑定的模块更新,但不能由导入模块重新分配.

因此,如果您确实需要使用可变对象,则需要导出一个对象.引用将再次是不可变的,但您将能够更改其属性.例如.

export const obj = {activePoint: null}

和在工具.js中

import {obj} from '../js/app.js';
obj.activePoint = 4;

Javascript相关问答推荐

如何提取Cypress中文本

使用print This时, map 容器已在LeafletJS中初始化

将现场录音发送到后端

如何用拉威尔惯性Vue依赖下拉?

setcallback是什么时候放到macrotask队列上的?

如何在 cypress 中使用静态嵌套循环

如何在Vue 3中创建自定义 Select 组件,并将选项作为HTML而不是props 传递?

为什么我的导航条打开状态没有在窗口addeventlistener(Reaction Js)中更新?

从包含数百行的表中获取更改后的值(以表单形式发送到后端)的正确方法是什么?

使用带有HostBinding的Angular 信号来更新样式?

如何在Java脚本中对列表中的特定元素进行排序?

如何使用<;Link>;执行与JS Reaction中的";window.Location=/GameOverDied;";类似的操作?

使每个<;li>;元素的 colored颜色 与随机生成的 colored颜色 列表不同(不重复

在验证和提交表单后使用useNavigate()进行react 重定向,使用带有加载器和操作的路由

重新渲染过多(&Q).REACT限制渲染次数以防止无限循环.使用REACT下拉菜单时

如何阻止外部脚本进入顶层导航

无法向甜甜圈图表上的ChartJSImage添加可见标签

在Reaction Native中,ScrolltoIndex在结束时不一致地返回到索引0

如果未定义,如何添加全局变量

Node.js的Fetch()调用总是创建新的Express会话