Navigator.push在抽屉里没有上下文的原因是因为抽屉组件和导航器组件的层级关系导致的。抽屉组件通常是作为导航器组件的子组件存在,而导航器组件负责管理页面之间的导航关系。当使用Navigator.push进行页面跳转时,需要通过上下文(context)来获取导航器组件的实例,以便进行页面的切换操作。
然而,在抽屉组件中,由于其层级关系较低,无法直接获取到导航器组件的上下文。因此,当在抽屉组件中使用Navigator.push时,会出现上下文无法获取的情况,导致无法进行页面跳转。
解决这个问题的方法是通过在抽屉组件中传递导航器组件的实例或上下文。可以通过在抽屉组件的props中添加导航器组件的实例或上下文,然后在抽屉组件内部使用该实例或上下文来调用Navigator.push方法。
另外,也可以考虑将抽屉组件与导航器组件进行解耦,即将抽屉组件提升到导航器组件的外部,这样就可以直接获取到导航器组件的上下文,从而解决Navigator.push在抽屉里没有上下文的问题。
总结起来,Navigator.push在抽屉里没有上下文的原因是层级关系导致无法直接获取到导航器组件的上下文。解决方法可以通过传递导航器组件的实例或上下文给抽屉组件,或者将抽屉组件与导航器组件进行解耦。
领取专属 10元无门槛券
手把手带您无忧上云