问题描述
{
...
itemsPerPage: number;
searchPhrase?: string;
}
此外,我必须有一个pageIndex
(当前页号),并且可以从Url获取它。为此,我有一个选择器:
export const getCurrentPageIndex = createSelector(
selectRouteParam("pageIndex"),(pageIndex) => {
return pageIndex ? parseInt(pageIndex,10) : 1;
}
);
,我的路线有{:pageIndex}
参数。到目前为止一切顺利。
现在,我有一个处理当前页面数据的方法,它使用pageIndex
从状态(包括使用提到的选择器的withLatestFrom()
中获取所有必需的参数,然后从服务器请求数据) 。这样简单的场景,例如更改页面工作。
现在,假设有一个 Filter 字段,用户可以在其中输入内容,然后输入searchPhrase
,然后我需要刷新页面需要将当前页码(pageIndex
)设置为1。此pageIndex
来自路由器存储。因此,这就是我在效果上所做的事情:
loadPageByNumber$ = createEffect(
() =>
this.actions$.pipe(
ofType(MyActions.loadPageByNumber),tap((action) => {
this.router.navigate([`/someroute/${action.pageIndex}`]);
}),map(() => MyActions.loadPageOfData({}))
)
//{ dispatch: false }
);
这就是问题所在。即使我对新页面进行了navigate
的操作,loadPageOfData()
仍然从路由器存储选择器中看到了旧的pageIndex
。
例如,路线/items/30
-获取第30页数据。现在,用户输入搜索短语-状态更改,我需要将pageIndex
重置为1(因为现在这是完全不同的数据集)。我的逻辑不起作用,pageIndex
在加载数据效果内部保持不变。
如何解决此问题,或者我在做什么错了?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)