routeWarning导致无限循环

时间:2016-01-13 02:43:19

标签: react-router

在将我们的应用从路由器升级到2.0.0-rc4时,我在“开发”模式下的Chrome浏览器中出现以下错误:

  

未捕获RangeError:超出最大调用堆栈大小

enter image description here

这似乎来自warning.js中的无限循环。

这可以在我的申请中复制,内容如下:

import routerWarning from 'react-router/lib/warning'
routerWarning(true, 'a test message')

2 个答案:

答案 0 :(得分:0)

您的网络包配置中lib中很可能有.resolve.modulesDirectories。不要这样做 - 它会导致第三方库的广泛问题。

答案 1 :(得分:0)

看起来react-router在名为warning的文件中需要warning.js包。这导致我的配置无限循环,因为react-router的warning.js需要自己而不需要包。

我能够通过在我的package.json中添加"warning": "2.1.0"并将resolve.modulesDirectories更改为包含warning包目录而在任何其他人之前解决此问题:

modulesDirectories: [
  path.join(__dirname, '..', '..', 'node_modules', 'warning'),
  "", "shared", "node_modules"
]