首页 > 解决方案 > 升级到 NextJS 9.0 后如何修复 React Hooks?

问题描述

将 nextjs 更新到 9.0.0 后,在构建过程中出现此问题。 nex^8.1.0 → ^9.0.0
在页面组件中,我使用的是我之前设置的全局存储。

const { state, dispatch } = React.useContext(React.createContext())

错误信息是
TypeError: Cannot read property 'state' of undefined, > Build error occurred

标签: javascriptreactjsreact-hooksnext.js

解决方案


原来我必须提供一个默认值,因为React.createContext() 我有初始值,但我将它们传递给Store.Provider,

export function StoreProvider(props) {
  const [state, dispatch] = React.useReducer(reducer, initialState);
  const value = { state, dispatch };
  return <Store.Provider value={value}>{props.children}</Store.Provider>}

我只需要添加initialStatecreateContext()

export const Store = React.createContext({ state: initialState })

推荐阅读