我在reduxer.js文件中找到了一个名为“logoutUser()”的文件:
export const logoutUser = () =>
(dispatch, getState) => {
clearJwt()
({ type: LOGOUT_USER })
}
我有函数“clearJwt()”,它位于文件jwt.js:
中export const clearJwt = () => {
localStorage.removeItem(TOKEN_KEY)
}
当它到达“clearJwt()”时出现此错误:
reducer.js:77 Uncaught TypeError: (0 , _jwt.clearJwt)(...) is not a function
at reducer.js:77
at index.js:11
at Object.logoutUser (LogoutContainer.jsx:28)
at LogoutContainer.componentDidMount (LogoutContainer.jsx:14)
at LogoutContainer.proxiedComponentDidMount (createPrototypeProxy.js:61)
jwt.js在reducer.js文件中按此行导入:
import { saveJwt, getJwt, clearJwt } from '../auth/jwt'
我在其他地方调用过这个函数,特别是在函数正上方的另一个函数中出现的catch
.catch(error => {
clearJwt()
dispatch({ type: ERROR_LOGIN_TOKEN, payload: error.message })
})
..这有效!
但是,它会在我的logoutUser()函数中抛出上述错误。
它应该只是去那个功能,但它错了..有人可能指出我正确的方向..
答案 0 :(得分:1)
您在此处调用clearJwt()
的返回值:
clearJwt()
({ type: LOGOUT_USER })
因此调用clearJwt()
,但它返回undefined
(因为它是一个没有return
语句的块箭头函数)。然后将调用值(这是第二行),但这会失败,因为,正如错误消息所述,“undefined不是函数”。