是否有可能以某种方式更改查询变量以进行查询?我的想法是,我使用名为pageSize
. 现在,当用户在浏览器中打开一个项目并按下后退按钮时,我将向他显示他之前看到的页面。但是路由状态在刷新时也会持续存在,所以我想听onReadyStateChange
,如果事件CACHE_RESTORE_FAILED
会被触发,我想更改pageSize
为初始状态尺寸。是否有可能以某种方式在 Route 级别收听此更改?
在@chris 评论后添加一些代码:
路线:您可以看到我如何从路线状态中获取 pageSize
<Route
path=":username"
prepareParams={(params, { location }) => {
const relayParams = params;
if(location.state && location.state.pageSize) {
relayParams.pageSize = location.state && location.state.pageSize;
}
return relayParams;
}}
component={ProductList}
queries={UserQuery}
/>
不需要显示任何 ProductList 代码,现在它只是呈现连接。这个想法很简单,你打开产品列表页面,点击显示更多几次,pageSize 编号从 20 增加到 100。用户然后单击产品编号 99,我向他展示产品,他点击返回,他看到他有谁以前见过。太好了,路线状态被记住了很多次。但是在用户在浏览器中单击刷新后,路由状态也保持不变,所以我正在查询以获取前 100 个产品,这太多了。我想收听事件,如果在本地内存中找不到产品(环境已切换或页面刷新),我想更新变量以仅获取前 20 个。