JavaScript: изменение импортированной «переменной» вызывает «Присвоение постоянной переменной», даже если она не является константой - PullRequest
0 голосов
/ 11 декабря 2018

У меня есть два файла, file1 экспортирует переменную «не константа» var x = 1 и file2, которая импортирует из нее эту переменную

проблема в том, что я не могу изменить импортированную переменную, даже если онане константа!

file1.js

export var x=1 //it is defined as a variable not a constant

file2.js

import {x} from 'file1.js'
console.log(x) //1
x=2 //Error: Assignment to constant variable

1 Ответ

0 голосов
/ 11 декабря 2018

Это эффект неизменных значений экспортируемых модулей .Вы можете переопределить это с помощью другой функции в том же модуле

В вашем файле 1:

export let x = 1;
export function modifyX( value ) { x = value; }

В вашем файле 2

import { x, modifyX } from "file1.js"

console.log( x ) // 1;
modifyX( 2 );
console.log( x ) // 2;
...