总结:Navigator.of(context) 这种context, 必须是能够找到MaterialApp对象的context, 因为navigator对象只能由MaterialApp提供,其他的对象不能提供。所以不能直接在MaterialApp的home属性中时候用 Navigator.of(context) , 因为此处的context 就是 MaterialApp Widget自身对应的element, 调用of()方法会继续向上查找NavigatorState, 但是找不到,所以就会报错,如果将Home的widget拆分出一个独立的widget, 则会不出现此问题,应为从这里向上找,会找到MaterialApp, 也就是会找到navigator。
参考: