首页 > 解决方案 > 不从函数调用 getlocalstorage

问题描述

您好我正在尝试测试我的本地存储功能,但我不知道为什么不调用该函数或为什么它返回 null。

代码

export const getRange = (type = '') => {
    switch (type) {
    case RANGE_SELECTION_TYPE.OPTIDRIVE:
        return getLocalStorageItem(LOCAL_STORAGE_KEYS.OPTIDRIVERANGE) || DATE_OPTIONS.LAST_30_DAYS
    case RANGE_SELECTION_TYPE.LOGBOOK:
        return getLocalStorageItem(LOCAL_STORAGE_KEYS.LOGBOOKRANGE) || DATE_OPTIONS.CURRENT_YEAR
    default:
        return DATE_OPTIONS.LAST_30_DAYS
    }
}

测试

test('should return the current value from the local storage from the opridrive selection', () => {
    setLocalStorageItem(type, DATE_OPTIONS.LAST_YEAR)
    expect(getRange(type)).toBe(DATE_OPTIONS.LAST_YEAR)
    removeLocalStorageItem(type)
})

因此,如果该函数有本地存储值,但如果不是默认值,则返回该值,但是当它不应该有任何建议时,它会获取默认值?

PS该程序有效!

有什么建议吗?

标签: reactjsjestjslocal-storage

解决方案


type的设置不正确,当您获取本地存储时,它没有找到本地存储变量的正确名称。我建议通过打开开发工具来调试它。如果您使用的是 Chrome:

  1. Ctrl + Shift + i (PC) 或 Cmd + Shift + i (Mac)
  2. 在开发工具顶部栏上,导航到应用程序
  3. 在左侧边栏上,展开本地存储并单击有问题的端点(通常是 localhost)
  4. 查看本地存储变量的密钥是什么,以及设置是否正确。

推荐阅读