gpt4 book ai didi

reactjs - 错误 : useRoutes() may be used only in the context of a component

转载 作者:行者123 更新时间:2023-12-04 03:51:17 30 4
gpt4 key购买 nike

我正在使用 System JS 动态添加 React 模块,效果很好!
除非我尝试使用加载模块中的 react-router 上下文。
“ react 路由器-dom”:“6.0.0-beta.0”
在 react 组件资源管理器中可以看到肯定有 <Router>组件作为祖先。
路由在主机应用程序中运行良好 - 只有在从动态加载的组件调用时才会中断。
我是 React 的新手,所以我可能会错误地假设上下文是如何提供给深度嵌套或动态加载的子级的。
enter image description here
路由器安装在这里 -
https://github.com/savantly-net/sprout-platform/blob/47cb99f7076bf6df09d9fec8e2d6c7ee78ce08af/frontend/apps/webapp/src/index.tsx#L204
模块正在这里加载 -
https://github.com/savantly-net/sprout-platform/blob/47cb99f7076bf6df09d9fec8e2d6c7ee78ce08af/frontend/apps/webapp/src/features/plugins/AppRootPage.tsx#L84
抛出异常的模块元素在这里 -
https://github.com/savantly-net/sprout-platform/blob/47cb99f7076bf6df09d9fec8e2d6c7ee78ce08af/backend/modules/forms/src/plugin/FormsRootPage.tsx#L47

最佳答案

问题是由于有 react-router-dom模块包中的lib。
加载动态模块时,它使用的是自己的 lib 版本,而不是主机应用程序提供的版本。
我将此添加到 externals在我的 webpack/rollup 配置中,问题就解决了。
我现在可以在主机应用程序中通过插件管理子路由! =]。
网页包 -
https://github.com/savantly-net/sprout-platform/blob/e746085ebd65820fd449c968385913f2cc86ee0d/frontend/tools/sprout-toolkit/src/config/webpack.plugin.config.ts#L176

关于reactjs - 错误 : useRoutes() may be used only in the context of a <Router> component,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64403652/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com