2

是否有可能以某种方式更改查询变量以进行查询?我的想法是,我使用名为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 个。

4

0 回答 0