You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Angular 13路由状态间传递函数?

Angular 13路由状态间传递数据的问题

普通数据传递方式

在Angular 13中,路由状态间传递普通数据可通过以下方式实现:

传递数据的代码:

this.router.navigate(["/news"], { state: { somevalue: 1 } })

在目标组件的构造函数中读取该数据:

this.router.getCurrentNavigation().extras.state.somevalue

传递函数的尝试与报错

若尝试在路由状态间传递函数,比如使用如下写法:

this.router.navigate([url], { state: { somevalue: () => { console.log("test") } } })

会触发以下错误:

Error: Uncaught (in promise): DataCloneError: Function object could not be cloned.

这是因为路由state中的数据会被执行序列化(克隆)操作,而函数属于不可克隆的对象类型,因此无法通过这种方式传递。

内容的提问来源于stack exchange,提问作者Martin Eckleben

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 05:31:32