iam在我的reducer中构建一个react-redux应用程序我在使用babel es2015和stage-2编译我的bundle.js与webpack之后得到了这个错误,我做了一些研究并且它们使用了const范围是块代码,所以为什么我得到双重声明的错误? 我的减速机就像上面的这个功能
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 :(得分:1)
你需要用大括号包装每个case分支,如下所示:
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;
}
}
}
switch语句中的所有内容都是一个块范围。大括号将每个大小写放在它自己的块范围内 - 如果没有它们,你将在相同的范围内重新声明一个const,这将是错误的。