NextJS-无效的挂钩调用。挂钩只能在功能组件的主体内部调用

时间:2019-08-25 14:45:38

标签: reactjs material-ui next.js

尝试使用NextJS进行构建时出现此错误。我不使用样式化组件。我尝试删除node_modules等,但是没有运气。我尝试在我的next.config.js文件和package.json中添加别名并解决react的问题,但运气不佳。我正在使用react 16.8.6,react-dom 16.8.6和下一个9.0.4。 npm ls说只有一个。该应用程序使用material-ui。我没有使用任何npm链接。我在没有任何钩子的version和仅具有功能组件和钩子的version中得到了错误。

此仓库位于https://github.com/dancancro/questions/tree/convert-to-function-component

Codesandbox在这里:https://codesandbox.io/s/stop-indoctrination-5xfpi

错误在这里:https://gist.github.com/dancancro/2dfafb053aaaedfade406fd4f67eb68a 渲染-> renderToString-> ReactDOMServerRenderer.read-> ReactDOMServerRenderer.render-> Object.WithStyles [as render] ...

有问题的钩子是在useStyles()函数中的此文件的第17428行上的withStyles调用。搜索“ var classes = useStyles(props)”。问题在于nextjs生成的代码。我编写的代码没有使用withStyles或任何以“ use *”开头的钩子或任何函数。

https://raw.githubusercontent.com/dancancro/questions/invalid-hook-call/.next/static/development/pages/index.js

1 个答案:

答案 0 :(得分:0)

从next.config.js中删除它可以解决此问题。

    webpack: config => {
        config.externals = [
            '/'
        ]
        return config
    },