Change the imported Value


に質問
  • static value外部ファイルの変数として宣言します.
  • ファイルの分離が良好であれば、原則として静的値であるが、プログラム設計上は変数のように変更せざるを得ない場合がある.
  • ただし、import文にインポートされている以上、ファイル内でread-only定数に変更することはできません.
  • // fileA.js
    export let foo = 5;
    
    // fileB.js
    import {foo} from './fileA'
    
    foo = 6 // error!
  • TypeError: Cannot assign to read only property 'exports' of object '#<Object>' errorなどのエラー.
  • ソリューション
  • moduleにインポートするファイルに変数を変更する関数などを作成できます.
  • // fileA.js
    export let foo = 5;
    export const changeFoo(a){
    	foo = a;
    }
    // fileB.js
    import {foo, changeFoo} from './fileA'
    
    foo = changeFoo(6) // okay!
    コメントサイト
  • StackOverflow
  • flaviocopes.com