如何从URL状态更新生命周期CDM / CDUP上的redux存储?

问题描述

我有一个应用程序,它显示带有数据的图表取决于几个选项,例如时间段(startDate,endDate),选定的数据集,粒度等。

问题是当用户选择某些特定选项时,应用程序生成图表并希望与其他人共享其结果。我无法将URL路径与参数一起使用,因为其中的一些参数(例如异常ID包括很长且很奇怪的字符串),因此我决定对redux存储选择的选项进行编码并将其添加到URL路径中,如下所示:

encodeURIComponent('startDate=11-08-2019')

等所以最终的网址看起来像这样:

http://example.com/datasets/startDate%3D11-08-2019%2FendDate%3D23-09-2019

解码URL后,我得到了:

{
   startDate: '11-08-2019',endDate: '23-09-2019',}

之后,可以与某人共享此链接。但是存在一个如何基于这些参数更新存储的问题。我当然可以解码该URL并读取一些属性及其值。问题是该应用程序在挂载后获取可用的数据集并从列表中首先选择它作为认值。如果URL参数中的参数不同,我想将其设置为当前选定的数据集。 例如,一开始我们有id = 33的数据集,但是在URL参数中,数据集的id是46。在从API异步获取数据集并选择认数据集之后,我必须更改此store属性(数据集是在具有图表的组件中获取的是另一个组件中)

此外,其他属性还有另一个问题。用户可以选择时段类型的数据集(例如天,周或月),以及数量(例如3周)。基于选定时间段的时间段刷新数据集的每次更改。用户从共享URL打开应用程序时,必须执行相同的情况。

使用编码的URL参数以这种方式更新应用程序是一个好选择吗?还是有另一种更好的方法呢? 从URL打开或手动启动时,如何正确更新应用程序?

我希望有人可以告诉我该怎么做:)

感谢帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)