2017-07-17 3 views
0

iam bau eine react-redux app in meinem reducer ich habe diesen fehler nach kompilieren mein bundle.js mit webpack mit babel es2015 und stage-2, ich habe einige forschung und es ihnen die const bereich sind der block code, warum also warum bekomme ich einen fehler der doppelten deklaration? meine Minderer seine wie diese Funktion überconst scope mit babel transpiler

function print(foo){ 
    switch(foo){ 
    case 'test': 
     const bar = 2; 
     console.log(bar+1); 
     break; 
    case 'test1': 
     const bar = 1; 
     console.log(bar+2); 
     break; 
    default: 
     console.log('no match') 
     break; 
    } 
} 
print('test'); 
+0

Nun, wo in Ihrem Code haben Sie den '{' '' 'Block? – Bergi

Antwort

1

Sie müssen jeden Fall Zweig mit geschweiften Klammern wie folgt wickeln:

function print(foo){ 
    switch(foo){ 
    case 'test': { 
     const bar = 2; 
     console.log(bar+1); 
     break; 
    } 
    case 'test1': { 
     const bar = 1; 
     console.log(bar+2); 
     break; 
    } 
    } 
} 

Alles innerhalb der switch-Anweisung ist nur ein Block Umfang. Die geschweiften Klammern setzen jeden Fall in seinen eigenen Blockbereich - ohne sie deklarieren Sie eine Konstante innerhalb desselben Bereichs, was zu einem Fehler führt.