Flutter 如何在子窗口小部件中定义Navigator.pop()响应类型

Flutter 如何在子窗口小部件中定义Navigator.pop()响应类型,flutter,dart,flutter-navigation,Flutter,Dart,Flutter Navigation,父窗口小部件 String pincode = await Navigators.root.currentState.push( MaterialPageRoute<String>( builder: (context) => ChildWidget(), ), ); 我的担忧: 如果有人更改了子项.pop则响应bool。 IDE永远不会知道并在父窗口小部件中显示警告 如果不研究子窗口小部件的实现, 您将不知道它返回的是什么类型 当前解决方案 class C

父窗口小部件

String pincode = await Navigators.root.currentState.push(
  MaterialPageRoute<String>(
    builder: (context) => ChildWidget(),
  ),
);
我的担忧:

  • 如果有人更改了子项
    .pop
    则响应
    bool
    。 IDE永远不会知道并在父窗口小部件中显示警告
  • 如果不研究子窗口小部件的实现, 您将不知道它返回的是什么类型

  • 当前解决方案

    class ChildResult {
      final String pincode;
      ChildResult({ this.pincode });
    }
    
    class Child extends HookWidget {
        ...
        Navigators.root.currentState.pop(ChildResult(pincode: pincode));
        ...
    }
    
    
    我当前的解决方案是创建一个
    [Widget]结果
    类, 并告诉我的同事对所有小部件都保持相同的做法, 因此,至少我可以预览IDE中的值名称/类型


    还有其他解决方案吗?

    据我所知,目前无法在导航器上定义pop函数的类型。当您调用pop时,类型是动态的,因为它不知道它将被弹出到堆栈中的哪个页面(小部件)

    class ChildResult {
      final String pincode;
      ChildResult({ this.pincode });
    }
    
    class Child extends HookWidget {
        ...
        Navigators.root.currentState.pop(ChildResult(pincode: pincode));
        ...
    }