【发布时间】:2022-09-27 15:40:38
【问题描述】:
我构建了一个 React,现在我正在尝试从 React Router dom 迁移到 Next.js。我进行了重大更改并重构了代码; (pages/routes 和 store.js) 但后来我收到了这个错误“ReferenceError: localStorage is not defined”。
19 | const initialState = {
> 20 | access: localStorage.getItem(\'access\'),
| ^
21 | refresh: localStorage.getItem(\'refresh\'),
22 | isAuthenticated: null,
23 | user: null
你能帮我解决这个问题吗?
减速器/auth.js:
import {
LOGIN_SUCCESS,
LOGIN_FAIL,
SIGNUP_SUCCESS,
SIGNUP_FAIL,
ACTIVATION_SUCCESS,
ACTIVATION_FAIL,
USER_LOADED_SUCCESS,
USER_LOADED_FAIL,
AUTHENTICATED_SUCCESS,
AUTHENTICATED_FAIL,
PASSWORD_RESET_SUCCESS,
PASSWORD_RESET_FAIL,
PASSWORD_RESET_CONFIRM_SUCCESS,
PASSWORD_RESET_CONFIRM_FAIL,
LOGOUT
} from \'../actions/types\';
const initialState = {
access: localStorage.getItem(\'access\'),
refresh: localStorage.getItem(\'refresh\'),
isAuthenticated: null,
user: null
};
export default function (state = initialState, action) {
const { type, payload } = action;
switch(type) {
case AUTHENTICATED_SUCCESS:
return {
...state,
isAuthenticated: true
}
case LOGIN_SUCCESS:
localStorage.setItem(\'access\', payload.access);
localStorage.setItem(\'refresh\', payload.refresh);
return {
...state,
isAuthenticated: true,
access: payload.access,
refresh: payload.refresh
}
case USER_LOADED_SUCCESS:
return {
...state,
user: payload
}
case SIGNUP_SUCCESS:
return {
...state,
isAuthenticated: false
}
case AUTHENTICATED_FAIL:
return {
...state,
isAuthenticated: false
}
case USER_LOADED_FAIL:
return {
...state,
user: null
}
case LOGIN_FAIL:
case SIGNUP_FAIL:
case LOGOUT:
localStorage.removeItem(\'access\');
localStorage.removeItem(\'refresh\');
return {
...state,
access: null,
refresh: null,
isAuthenticated: false,
user: null
}
case PASSWORD_RESET_SUCCESS:
case PASSWORD_RESET_FAIL:
case ACTIVATION_SUCCESS:
case ACTIVATION_FAIL:
case PASSWORD_RESET_CONFIRM_SUCCESS:
case PASSWORD_RESET_CONFIRM_FAIL:
return {
...state
}
default:
return state
}
};
先感谢您
标签: reactjs next.js local-storage