我使用的是角度通用,以及我的应用程序中的预渲染。在我的应用程序中,我将以下路径设置为预渲染:
/
/about
/login
/:id
任何路径
我可以在源代码的底部看到一个空传输状态的脚本标记。根路径中使用的组件不使用传输状态或任何其他路径,除了
/:id
<script id="app-state" type="application/json">{}</script>
如果从构建过程中排除预渲染,则不会发生这种情况。
问题是
第页,我使用的是传输状态
transferState.get()
打电话找不到任何东西,因为我的
transferState.set()
call在空的脚本标记之后附加另一个脚本标记,该标记具有相同的id
get()
call找到第一个空的。我的解决方法是依次调用remove和set:
this.transferState.remove(stateKey);
this.transferState.set(stateKey, data);
为什么在预呈现时传输状态设置为空状态键?转移状态
set()
仅在上使用的服务方法中调用
页面,但每个路由都设置了空状态。