【问题标题】:Variables not accessible on switch在开关上无法访问的变量
【发布时间】:2019-10-16 13:14:15
【问题描述】:

变量 startend 在另一个 switch case 中是不可访问的。但应该是。

代码



for (let key in filters) {
            let obj = filters[key];
            if (!filters.hasOwnProperty(key) || obj === '' || obj.length === 0) {
                continue;
            }
            let start;
            let end;
            switch (key) {
                case "datum_van": {
                    start = new Date(obj);
                    break;
                }
                case "datum_tot": {
                    end = new Date(obj);
                    break;
                }
                case "dateVal": {
                    filteredRoutes = filteredRoutes.filter(tocht => {
                        let date = this.parseJsonDate(tocht.datum_van);
                        switch (obj) {
                            case 0: return date >= start && date <= end;
                            case 1: return date >= start;
                            case 2: return date <= end;
                        }
                    });
                    break;
                }

【问题讨论】:

  • 如果它以前有效,现在无效....你改变了什么?它怎么不工作?您是否在控制台中收到错误消息?
  • 独立日期过滤器有效但未实现,这就是我想要弄清楚的。在我的意思是在实施日期过滤器之前工作。它的其余部分确实有效。
  • 当您说“日期过滤器”时,您指的是其中的哪一部分?你可以说得更详细点吗?添加了什么代码?

标签: javascript reactjs scope switch-statement


【解决方案1】:

我发现了这个问题,这是由于case "dateVal" 上无法访问startend,通过将我的let start;let end; 放在for 循环之外来修复它。

像这样:

let start;
let end;
for (let key in filters) {
...
}

代替:

for (let key in filters) {
let start;
let end;
...
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-08
    • 2021-09-22
    • 1970-01-01
    • 2018-01-10
    • 1970-01-01
    • 2020-12-13
    • 2014-06-04
    相关资源
    最近更新 更多