Reputation: 614
I have two files, file1 exports a variable 'not a constant' var x=1 and file2 which imports this variable from it
the problem is that I canno't modify that imported variable even it is not a constant!
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
Upvotes: 12
Views: 4291
Reputation: 31
you can try to set the x as an object property like this:
export default {
x: 1
}
then from your second file:
import file1API from "./file1.js";
console.log(file1API.x); //1
file1API.x = 2;
console.log(file1API.x); //2
note that the value of x will also be updated in "file1.js".
Upvotes: 0
Reputation: 19581
That's an effect of the immutable exported module values. You can override that with another function in the same module
In your file 1 :
export let x = 1;
export function modifyX( value ) { x = value; }
In your file 2
import { x, modifyX } from "file1.js"
console.log( x ) // 1;
modifyX( 2 );
console.log( x ) // 2;
Upvotes: 13