Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 在重新加载页面之前,ngrx存储不会在其他路由上更新_Angular_Typescript_Ngrx - Fatal编程技术网

Angular 在重新加载页面之前,ngrx存储不会在其他路由上更新

Angular 在重新加载页面之前,ngrx存储不会在其他路由上更新,angular,typescript,ngrx,Angular,Typescript,Ngrx,我有一个Angular 7应用程序,我正在使用ngrx。当我将文件对象添加到我的应用商店时,我会在redux检查器中看到更改,但每当我转到显示文件的路径时,直到重新加载浏览器,我才获得最近添加的文件。我一直在试图找出造成这种情况的原因,但到目前为止还没有找到答案 减速器: case FilesActionTypes.GET\u文件: 返回{…状态,加载:true}; 案例文件ActionTypes.GET_FILES_成功: 返回adapter.addAll(action.payload.dat

我有一个Angular 7应用程序,我正在使用ngrx。当我将文件对象添加到我的应用商店时,我会在redux检查器中看到更改,但每当我转到显示文件的路径时,直到重新加载浏览器,我才获得最近添加的文件。我一直在试图找出造成这种情况的原因,但到目前为止还没有找到答案

减速器:

case FilesActionTypes.GET\u文件:
返回{…状态,加载:true};
案例文件ActionTypes.GET_FILES_成功:
返回adapter.addAll(action.payload.data,state);
案例文件ActionTypes.UPLOAD\u文件\u成功:
返回adapter.addOne(action.payload.file,{…state,loading:false});
我只是使用默认的selectAll选择器。 选择器:

export const selectAllFiles = createSelector(selectFilesState, selectAll);
这是我的组件,我在其中显示文件:

导出类UserComponent实现OnInit{
公共id:string;
公共文件$:可见
如果你需要更多的代码,我可以提供。提前谢谢

编辑:我把我的问题缩小了一点

我有一个/users路由和/users/:id路由。如果我添加一个文件(从/users路由)如果不先转到/users/:id路由,则在导航到/users/:id路由时可以看到更新的文件列表。但是如果我转到/users/:id路由,然后返回到/users并添加文件,然后再次转到/users/:id,则在重新加载页面之前,我看不到更新的文件列表


也许这可以帮助你帮助我。

我想你漏掉了括号

但是,您可以在执行ngfor之前检查数据是否存在

 <ng-template ngbTabContent *ngIf="files$ | async as files">
   <div *ngFor="let file of files">
    <a [href]="['http://localhost:3030/files/'] + file._id" target="_blank">{{ file.name }}</a>
   </div>
 </ng-template>

我想你漏掉了括号

但是,您可以在执行ngfor之前检查数据是否存在

 <ng-template ngbTabContent *ngIf="files$ | async as files">
   <div *ngFor="let file of files">
    <a [href]="['http://localhost:3030/files/'] + file._id" target="_blank">{{ file.name }}</a>
   </div>
 </ng-template>

问题似乎出在后端


问题已解决。祝您愉快!

似乎问题出在后端


问题已解决。祝您愉快!

localhost:3030
,您的应用程序的路由?还是另一个localhost?它是另一个localhost。文件在另一个localhost(feathers js后端)上显示得很好。我的问题是列出它们。我应该在描述中更清楚地说明这一点。我可以确认它已被销毁。这就像我导航到首先使用UserComponent的路由时,路由之间的状态不一致一样。我确实使用了redux检查器,当我从/users.is
localhost:3030
添加应用程序的路由时,导航到/users/:id后,我没有获得正确数量的文件实体应用程序?还是另一个本地主机?它是另一个本地主机。这些文件在另一个本地主机(feathers js后端)上显示得很好。我的问题是列出它们。我应该在我的描述中更清楚地说明这一点。我可以确认它已被销毁。这就像我使用navig时,路由之间的状态不一致一样与首先使用UserComponent的路由有关。我确实使用了redux inspector,当我从/users添加到/users/:id后,我没有获得正确数量的文件实体。这不会解决我的问题。问题是当我从另一个路由添加一个文件并转到显示这些链接列表的路由在重新加载页面之前,我不会看到新添加的链接。我的状态在两个路由之间不一致。这不会解决我的问题。问题是,当我从另一个路由添加一个文件并转到显示这些链接列表的路由时,我在重新加载页面之前不会看到新添加的链接。我的状态在tw之间不一致o路线。