flutter - 付款成功后我想导航到另一个页面
问题描述
我正在开发一个应用程序。付款成功后,我想导航到另一个页面。
这是我的应用付款方式的代码
void handlerPaymentSuccess() { Navigator.push(context, MaterialPageRoute(builder: (context) => Itemsbuy()));
我对此进行了编码以导航该页面,但是在付款成功后,这没有显示,但是在付款完成后,它仅显示来自razorpay的付款成功,但未显示我导航的页面。付款成功后,它会重定向到第二条路线,而不是重定向到 Itemsbuy();
class SecondRoute extends StatefulWidget {
@override
_SecondRouteState createState() => _SecondRouteState();}
class _SecondRouteState extends State<SecondRoute> {
Razorpay razorpay;
TextEditingController textEditingController = new TextEditingController();
@override
void initState() {
razorpay = new Razorpay();
razorpay.on(Razorpay.EVENT_PAYMENT_SUCCESS, handlerPaymentSuccess);
razorpay.on(Razorpay.EVENT_PAYMENT_ERROR, handlerPaymentError);
razorpay.on(Razorpay.EVENT_EXTERNAL_WALLET, handlerExternalWallet);
super.initState(); }
void handlerPaymentSuccess() {
Navigator.push(context, MaterialPageRoute(builder: (context) => Itemsbuy()));//Items purchased}
这是我要推送的导航
void handlerPaymentError()
{
print('error'); }
void handlerExternalWallet()
@override
void dispose()
{
super.dispose();
razorpay.clear(); }
var options = {
"key": "empty",
"amount": empty,
"name": 'empty',
"Description": 'empty',
};
try {
razorpay.open(options);
} catch (e) {
debugPrint('error');
}}
谢谢你
解决方案
类 _Payment 扩展状态 { bool paymentDone = false;
@override
Widget build(BuildContext context) {
if (paymentDone == true) {
return NewPage();
}
else{
return CurrentPage();
}
}
void _handlePaymentSuccess(PaymentSuccessResponse response) async {
Fluttertoast.showToast(msg: "SUCCESS: " + response.paymentId, timeInSecForIosWeb: 4);
setState(() {
paymentDone = true;
);}
}
}
推荐阅读
- unity3d - 很好地弯曲轨道和道具的方法?
- html - 显示 flex 不能在 codepen 之外工作
- javascript - D3.js v5 - 在线性比例上创建一个相对的、可缩放的类似时间轴的轴
- github - 如何在许多 GitHub 存储库中跟踪问题和 PR
- nginx - Nginx 502 重定向到其他页面
- android - 如何在另一个文件中使用该变量?(反应原生)
- java - 如何解决 Spring Boot Procfile heroku 错误
- blender - 自动生成 100 个动画,每个动画都有不同的纹理输入 (BLENDER)
- graph - 如何使用 pari-gp 绘制椭圆曲线 mod p 的图形?
- flutter - GetIt/Injectable 在抽象类上缺少可注入装饰器?