NextRender() 之后角度信号未更新

问题描述 投票:0回答:1

使用 Angular SSR 时,如果我使用

afterNextRender
,我必须手动触发更改检测。
这毕竟是一个 Angular API。

有人有解决办法吗?

    afterNextRender(() => {      
       this.someAPI.then((items) => {
         this.items.set(items); // <-- set signal
         this.ref.detectChanges(); // <--- trigger change detection
       });
       
    });

我不想在服务器端进行API调用,这就是我使用

afterNextRender

的原因
angular signals server-side-rendering
1个回答
0
投票

您可以尝试一下吗

AfterRenderPhase.Write
,因为我们正在向 DOM 更新一些内容

下一次渲染后

渲染后选项

使用 AfterRenderPhase.Write 进行仅写入 DOM 的回调。切勿将此阶段用于可以从 DOM 读取的回调。

afterNextRender(() => {      
   this.someAPI.then((items) => {
     this.items.set(items); // <-- set signal
   });
   
}, {phase: AfterRenderPhase.Write});
© www.soinside.com 2019 - 2024. All rights reserved.