我试图在出现错误时使用如下所示的try ... catch语法在底部显示snackBar,但是由于某种原因,它没有显示出来。有人对此有解决方案吗?
Widget _confirmButton() {
return SizedBox(
height: 54,
width: double.infinity,
child: ElevatedButton(
onPressed: () {
try {
_tryValidation();
resetPassword(userEmail).then(
(value) => Get.to(
() => CompletePasswordReset(),
),
);
} catch (e) {
const snackBar = SnackBar(
content: Text('아이디 또는 비밀번호가 맞지 않습니다.'),
backgroundColor: errorColor40,
behavior: SnackBarBehavior.floating,
margin: EdgeInsets.all(30),
duration: Duration(seconds: 1),
);
ScaffoldMessenger.of(context).showSnackBar(snackBar);
}
},
child: Text(
'가입여부 확인',
style: TextStyle(
color: baseColor10,
fontFamily: 'semi-bold',
fontSize: titleMedium,
),
),
style: ElevatedButton.styleFrom(
backgroundColor: primaryColor50,
elevation: 0,
shadowColor: Colors.transparent,
side: BorderSide(
color: Colors.transparent,
),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(15.0),
),
),
),
);
}
5条答案
按热度按时间uttx8gqw1#
您需要在
_tryValidation
和resetPassword
方法/函数上抛出错误现在,即使snackbar运行良好,实现也从未达到catch语句。
在这里可以看到,通过将try块语句中的语句替换为
小吃店经营得很好。
b1zrtrql2#
piv4azn73#
尝试在
_confirmButton()
中添加上下文,如下所示_confirmButton(context)
3pmvbmvn4#
这个小吃店需要上下文,你必须在方法中传递上下文,而不是使用this,你可以使用Get-X小吃店,你可以在任何地方使用它。-
6ju8rftf5#