【发布时间】:2021-09-12 06:55:00
【问题描述】:
如何解决本地存储未定义 next.js 中的错误。我对 next.js 很陌生并做出反应。我知道我们需要在检查本地存储数据之前进行某种形式的挂载,但我想不出办法。我正在尝试保存到本地存储中,以便刷新页面时数据不会消失
export const GlobalContext = React.createContext();
export const GlobalProvider = (props) => {
const initialState = {
watchlist: localStorage.getItem("watchlist")
? JSON.parse(localStorage.getItem("watchlist"))
: [],
};
const [state, dispatch] = React.useReducer(AppReducer, initialState);
React.useEffect(() => {
localStorage.setItem("watchlist", JSON.stringify(state.watchlist));
}, [state])
const addtoWatch = coin => {
dispatch({ type: "ADD_COIN_TO_WATCHLIST", payload: coin })
}
return (
<GlobalContext.Provider
value={{
watchlist: state.watchlist,
addtoWatch,
}}
>
{props.children}
</GlobalContext.Provider>
);
};
【问题讨论】:
-
useLocalStorage可能会有所帮助。 -
本地存储在服务器端不可用,如果两者都可用,请尝试使用 cookie
标签: javascript reactjs next.js local-storage react-context