App A是一个自包含的单页React/Redux应用程序,旨在插入其他应用程序(不一定是使用React/Redux编写的应用)。我要将App A嵌入到另一个单页React/Redux应用程序B中,如下所示:
在应用程序B中创建一个组件ComponentA,其路由与App A使用的路由相同,其
render()
方法生成一个DIV
标记以承载App A。在ComponentA的
componentWillMount()
方法中,通过将相应的<script>
标记附加到文档主体末尾来加载先前构建的js bundles以呈现App A。
这样似乎很好工作,但是,当我从ComponentA导航离开并返回时,我会在Chrome Dev Tools控制台中看到以下错误多次出现,每次访问ComponentA一次:"Uncaught (in promise) TypeError: Cannot read property 'replaceChild' of null"。
当我检查Dev Tools的"React"选项卡时,我可以看到App A的组件层次结构多次出现,但是,只有最后一个实际附加到物理DOM上。
我的猜测是,当我使用应用程序B的链接导航到其他部分时,App A不知道路由的更改,因此它永远不会卸载,这会导致一些意外行为和后续错误。
我是这项技术的新手,并且想知道是否可以将React/Redux应用程序嵌入到另一个React/Redux应用程序中。如果可以,那么我该如何改变自己的方法才能使其正常工作?
目前我没有包含任何代码片段,因为代码是相当标准、基本的React/Redux代码,而我质疑的是方法本身。