Flutter 从文档选取器返回

Flutter 从文档选取器返回,flutter,Flutter,我试图从DocumentPicker导航回来,当时一个文件并没有被选中,但它显示为黑屏,并且控制台中并没有错误。如何修复它 Future<void> _getFile(BuildContext context) async { final FlutterDocumentPickerParams params = FlutterDocumentPickerParams( allowedFileExtensions: ['txt'], ); fina

我试图从DocumentPicker导航回来,当时一个文件并没有被选中,但它显示为黑屏,并且控制台中并没有错误。如何修复它

Future<void> _getFile(BuildContext context) async {
    final FlutterDocumentPickerParams params = FlutterDocumentPickerParams(
      allowedFileExtensions: ['txt'],
    );

    final String path = await FlutterDocumentPicker.openDocument(params: params)
        .catchError((dynamic e) {
      print(e.toString());
      return; // ?
    });

    print(path); // null, i.e. file was not selected

    if (path == null) {
      // back button pressed i.e. file was not selected
      Navigator.pop(
          context); // can not find previous screen, it shows black screen, there is no error in console
      return; // ?
    }
    ...
Future\u getFile(BuildContext上下文)异步{
最终颤振文档PickerParams参数=颤振文档PickerParams(
allowedFileExtensions:['txt'],
);
最终字符串路径=documentpicker.openDocument(params:params)
.catchError((动态e){
打印(如toString());
返回;/?
});
打印(路径);//空,即未选择文件
if(路径==null){
//按下后退按钮,即未选择文件
Navigator.pop(
context);//找不到上一个屏幕,显示黑屏,控制台中没有错误
返回;/?
}
...

黑屏意味着,您的
/
小部件已从导航堆栈中弹出。这意味着您试图弹出的小部件不是
文档选择器
,而是
小部件

我认为您不需要弹出当前小部件,因为输出
path
只有在
documentpicker
小部件被释放/关闭后才可用


只需从该方法返回
,无需弹出小部件。

我认为无论文件是否选中,您都不必调用
Navigator.pop()