调用父类函数时子类page属性出现undefined问题排查
问题原因及解决方案
问题出在你的子类PageExample里——你重复声明了page: Page属性,这直接覆盖了父类BaseApplicationPage中已经赋值的page。
在TypeScript的类初始化逻辑里,子类的实例属性会在构造函数执行流程中(包括调用super(page)之后)重新初始化。你在子类里加的page: Page相当于重新定义了这个属性,此时它的默认值是undefined,把父类构造函数刚赋好的page给冲掉了,所以调用navigate时this.page就变成undefined了。
修复方法
直接删掉子类里的page: Page声明就行,父类已经定义了这个属性,子类继承后可以直接使用,不需要重复声明:
export default class PageExample extends BaseApplicationPage{ pageTitleText: string = "example"; path: string = "example-value"; constructor(page: Page) { super(page); } }
修改后,父类构造函数赋值的page会被正确继承,调用navigate方法时就能正常访问this.page了。
内容的提问来源于stack exchange,提问作者Teamata Leoneos
相关产品推荐
相关产品推荐

