比如想在某个页面打开的时候设置一个回调进去,页面退出的时候调用这个回调来通知调用方,代码如下,但是在aboutToAppear中只能获取到test参数,completionCallback参数永远是undefined。这个原因是什么,如何解决?
private async startFaceAuth(params: AuthCheckParams): Promise<boolean> {
return new Promise((resolve, reject) => {
router.pushNamedRoute({
name: "VerifyFacePager",
params: {
test: "asasss",
completionCallback: (success: boolean) => {
resolve(success)
}
}
})
})
}
@Entry({ routeName: "VerifyFacePager" })
@Component
export struct VerifyFacePager {
@State isAgree: boolean = false
@State message: string = '发起认证';
@State certifyID: string = ''
uid: number = 0
metaInfo: string = ""
completionCallback?: (success: boolean) => void
aboutToAppear(): void {
const params = router.getParams() as VerifyFacePagerParams
this.completionCallback = params.completionCallback
console.log("aboutToAppear", params)
}
}
router不能传递函数,可以用Emitter 参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-emitter-V5\#emitteron