flutter 页面回传的两种方式

页面1:

方式1:

 /**
   *第一种异步方式 async await
   * 启动并等待返回结果
   */
  _navigatorAndDisplaySelection1(BuildContext context) async {
    print("----c------");
    var result = await Navigator.push(context,
        new MaterialPageRoute(builder: (context) => new SelectionScreen()));
    print("----d------");
    Scaffold
        .of(context)
        .showSnackBar(new SnackBar(content: new Text("$result")));
  }
}

方式2:

/**
 *  第二种异步方式 Future API
 * 启动后不等待返回结果 但是返回后有回调函数 相当于注册了一个接收者
 */
_navigatorAndDisplaySelection(BuildContext context) {
  print("----c------");
  Navigator
      .push(context,
          new MaterialPageRoute(builder: (context) => new SelectionScreen()))
      .then((result) {
    print("----E------");
    Scaffold
        .of(context)
        .showSnackBar(new SnackBar(content: new Text("$result")));
  }).catchError((error) {
    print("$error");
  });
  print("----d------");
}

页面2:

 Widget _getPadding(BuildContext context, String text) {
    return new Padding(
      padding: const EdgeInsets.all(8.0),
      child: new RaisedButton(
        onPressed: () {
          Navigator.pop(context, text);
        },
        child: new Text(text),
      ),
    );
  }
}

async/await方式


async/await方式

Future方式


Future方式

记录下 现在测试 ----------------------------------- 测试成功

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。