我对React和Redux没有经验,所以如果这太琐碎的话,我很抱歉,但是我自己找不到答案。
我有一个使用Redux 8和React Router DOM 6的React 17应用程序。简而言之,我需要创建一个过滤器,在每次有新请求进入应用程序时执行该过滤器。它必须读取查询字符串参数并将其传递给切片。如果查询字符串参数不存在,应用程序将正常执行。
在React / Redux中,正确的实现方式是什么?例如,我已经有了一个中间件,它为一个特定的操作执行一些逻辑,显然它是为每个请求执行的。我是否应该创建另一个中间件,读取查询参数并将其传递给切片?这不会增加太多的开销吗?
谢谢你
1条答案
按热度按时间rbpvctlc1#
一般React规则***不***存储***派生状态***。筛选的结果是可以从Redux存储中存储的状态***和***查询参数值派生的“状态”。获取这两条信息并在UI中“合并”它们以派生要呈现的数据或“状态”。
我建议使用
react-router-dom
中的useSearchParams
钩子来访问queryString参数,使用react-redux
中的useSelector
钩子来选择要过滤的状态切片,并在UI中处理过滤。示例:
如有必要,您可以记忆过滤结果。