Reactjs 即使在跨多个组件路由之后,如何在电子驱动的React应用程序中处理持久数据、功能和任务?

Reactjs 即使在跨多个组件路由之后,如何在电子驱动的React应用程序中处理持久数据、功能和任务?,reactjs,typescript,electron,background-process,Reactjs,Typescript,Electron,Background Process,我对React还比较陌生,因此在尝试如何在React中实现某些东西时遇到了一些障碍。最近,我正在编写一个只包含网格视图和详细信息视图的应用程序,为了导航,我一直在使用道具和函数来操纵子级中根组件的状态,但是一旦我重新构造代码,层次结构就变得凌乱不堪。幸运的是,我能够从react-router-dom实现一个MemoryRouter,它可以按预期工作。不幸的是,我现在遇到了一个问题,我不知道如何正确地使用React进行设计 假设在/下可访问的应用程序登录页具有前面提到的包含各种元素的网格。单击某个

我对React还比较陌生,因此在尝试如何在React中实现某些东西时遇到了一些障碍。最近,我正在编写一个只包含网格视图和详细信息视图的应用程序,为了导航,我一直在使用道具和函数来操纵子级中根组件的状态,但是一旦我重新构造代码,层次结构就变得凌乱不堪。幸运的是,我能够从
react-router-dom
实现一个
MemoryRouter
,它可以按预期工作。不幸的是,我现在遇到了一个问题,我不知道如何正确地使用React进行设计

假设在
/
下可访问的应用程序登录页具有前面提到的包含各种元素的网格。单击某个项目后,您将成功重定向到
/details/:id
。我能够解析
id
参数,该参数可通过我的
DetailsPage
组件中的
withRouter
获得。假设用户能够通过按下特定详细信息页面上的按钮启动一个长的后台进程(实际上是下载)。最有可能的情况是,异步运行此程序并让下载进程偶尔报告进度以更新当前页面上的进度指示器不会出现任何问题


如果用户返回到登录页,打开另一个项目的详细信息页,在那里发布下载并返回到第一个详细信息页,该怎么办?基本上,我想知道的是如何编写代码,使这些下载在后台运行,同时即使在导航之后也可以访问数据。特别是当返回到第一次下载时,我希望进度指示器自动更新为后台可用的状态/数据。

我通过创建第二个
浏览器窗口解决了这个问题,但使其不可见,以便作为任务和下载的后台工作者/代理运行。为了避免编写自定义IPC来获取状态,我集成了Redux。与之相结合,我能够在主进程中创建一个存储,并在每个渲染器进程中创建一个存储,与其他进程同步。这允许我在后台工作程序中发出操作,而无需将其IPC到主窗口