React Redux - 未捕获的错误...不是一个函数

si2*_*030 5 javascript reactjs react-redux

新的...

我看到一些问题提供了上述问题的解决方案,但这不是减速器而是简单的功能.

奇怪的是,我在另一个调用和检索文件中的结构几乎完全相同,在这种情况下,它是一个令牌并且可以正常工作.在上面的例子中我几乎遵循相同的模式,但是当我在这种情况下运行程序时,它告诉我我所调用的不是函数.

好的,所以我在这里调用函数,包括该函数文件的import语句.

import { saveSelectData, confirmSelectDataExistance } from '../selectData/localStorageDropDowns'
....
    //selectData download if nothing is local storage.
    const testSelectDataExistance = confirmSelectDataExistance()
    if (testSelectDataExistance) {
....
Run Code Online (Sandbox Code Playgroud)

..这里是confirmSelectDataExistance上面引用的代码块:

export const confirmSelectDataExistance = () => {
  const companyStateShortNameJson = localStorage.getItem(COMPANYSTATESHORTNAME)
  const statesJson = localStorage.getItem(STATES)
  const suburbLocationsJson = localStorage.getItem(LOCATIONS)
  if (companyStateShortNameJson || statesJson || suburbLocationsJson) {
    console.log('something exists in localstorage')
    return true
  }
    console.log('nothing in localstorage')
  return null
}
Run Code Online (Sandbox Code Playgroud)

它很简单,真的测试看看是否有任何东西localStorage.

现在,正如我所说,我在这方面是全新的.我可能没有添加足够的信息.让我知道.正如我所说,我有一个相同的模式来检索一个令牌,它的工作完美.但是,这会抛出此错误.

Uncaught TypeError: (0 , _localStorageDropDowns.confirmSelectDataExistance) is not a function
at reducer.js:30
at index.js:11
at Object.requestLoginToken (LoginContainer.jsx:33)
at LoginContainer._this.submit (LoginContainer.jsx:19)
at doSubmit (handleSubmit.js:39)
at handleSubmit (handleSubmit.js:101)
at Form.submit (reduxForm.js:566)
at Object.ReactErrorUtils.invokeGuardedCallback (ReactErrorUtils.js:70)
at executeDispatch (EventPluginUtils.js:85)
at Object.executeDispatchesInOrder (EventPluginUtils.js:108)
Run Code Online (Sandbox Code Playgroud)

鉴于我有相同的模式工作,必须有我错过的东西或简单的语法错误.

编辑

这是"localStorageDropDowns"的完整文件

const LOCATIONS = 'suburbLocations'
const STATES = 'states'
const COMPANYSTATESHORTNAME = 'comapanyStateShortName'


export const saveSelectData = (data) => {
  console.log('select Data', data)
  const suburbLocationsJson = JSON.stringify(data.suburbPostcodeDropDownList)
  const statesJson = JSON.stringify(data.stateDropDownList)
  const companyStateShortNameJson = JSON.stringify(data.companyStateShortName)
  localStorage.setItem(LOCATIONS, suburbLocationsJson)
  localStorage.setItem(STATES, statesJson)
  localStorage.setItem(COMPANYSTATESHORTNAME, companyStateShortNameJson)
}

export const confirmSelectDataExistance = () => {
  const companyStateShortNameJson = localStorage.getItem(COMPANYSTATESHORTNAME)
  const statesJson = localStorage.getItem(STATES)
  const suburbLocationsJson = localStorage.getItem(LOCATIONS)
  if (companyStateShortNameJson || statesJson || suburbLocationsJson) {
    console.log('something exists in localstorage')
    return true
  }
    console.log('nothing in localstorage')
  return null
}
Run Code Online (Sandbox Code Playgroud)

只有两个函数用于保存,一个用于检测是否localStorage有数据.