保持组件之间的共享状态?

时间:2019-06-13 02:39:19

标签: javascript reactjs

我正在使用旧版代码库,而且我是JavaScript新手,所以对于我正在使用的网站的布局方式,它非常含糊。基本上,我们有一个页面来显示某些查询的搜索结果。当您单击结果时,它将带您到一个具有更多详细信息的页面。我现在正在做的是一种计数器,用于跟踪您的结果(例如,您在100中的结果5中,它将显示在顶部的“ 5/100”带有上一个和下一个按钮)。

我已经有了一些有效的代码,但是只要刷新页面,它就会中断。基本上,它的设置方式是有一个SearchPage类,该类包含子SearchView(呈现视图)和SearchResultPage(路由到您单击的结果页面)。我仍然没有完全理解代码,但据我所知,SearchView完成了SQL查询并显示了结果,当您单击结果时,它会以某种方式将您路由到结果页面(例如Route对象)。 SearchView在SQL查询中已经有一个名为recordsTotal的变量,因此我要做的事情与本文建议的类似:

https://tylermcginnis.com/react-router-pass-props-to-components/

我基本上只是为该resultsTotal创建一个回调以传递给SearchPage,然后随后传递给SearchResultPage的路由。问题是,显然这首先需要进行初始SQL查询。如果刷新页面,则SQL查询永远不会完成,因此将其设置为我的默认值0。

另一方面,我也想知道如何制作它,这样每当我单击一个结果时,它实际上就是正确的数字(它是整体结果中的索引)。就目前而言,无论我单击什么,它都为1,因为这是我将其设置为静态的。这也与刷新问题有关,因为如果我只是想出一种将索引从SearchView传递到SearchResultPage的方法,那么刷新后就将其删除。但是无论如何,我仍然不确定如何获取索引。我稍后会尝试解决这个问题或发布另一个问题。

我在想什么是每当我进入结果页面时都以某种方式重做搜索查询,并以这种方式获取resultsTotal和结果编号。同时,它似乎在计算上也非常昂贵,因为仅获取结果数据就已经足够慢了。也许有一种简单的方法可以在所有组件之间缓存resultsTotal?仅当您进行新搜索时它才会更改,所以我不知道。

我不确定特定的代码片段是否对此有用,因为代码跨文件且非常分散,而且我的问题还是很概念化。如果您要特别说明,请随时发表评论和提问。谢谢!

0 个答案:

没有答案
相关问题