• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    해결됨

회원가입 버튼을 누른 후 validation 문제

24.03.08 11:51 작성 조회수 132

1

영상 마지막에 고쳐주신

setState(() {

_isEnabled = false;

_autovalidateMode = AutovalidateMode.always;

});

위치를 바꾸어주어서 그 전에 null 로 return 하는 조건문 때문에 autovalidateMode.always 가 적용되지 않는 것 같습니다.

조언 부탁드립니다.

답변 1

답변을 작성해보세요.

0

말씀하신 내용이 맞습니다.
제가 실수했네요.

 

ElevatedButton(
  onPressed: _isEnabled
	  ? () async {
		  final form = _globalKey.currentState;

		  if (form == null || !form.validate()) {
			return;
		  }

		  setState(() {
			_isEnabled = false;
			_autovalidateMode = AutovalidateMode.always;
		  });

영상 마지막 부분에 setState 함수를 if 문 아래로 이동했기 때문에
if 문에서 유효성 체크를 통과하지 않으면 return 에서 로직이 끝나게 됩니다. 그래서
_autovalidateMode = AutovalidateMode.always;
코드가 실행되지 않습니다.

 

수정된 코드 입니다.

ElevatedButton(
  onPressed: _isEnabled
	  ? () async {
		  final form = _globalKey.currentState;

		  setState(() {
			_autovalidateMode = AutovalidateMode.always;
		  });
		  
		  if (form == null || !form.validate()) {
			return;
		  }

		  setState(() {
			_isEnabled = false;
		  });

회원가입 버튼을 클릭하면
_autovalidateMode = AutovalidateMode.always;
코드를 실행 후, 유효성 체크를 하도록 수정했습니다.

Sean Choi님의 프로필

Sean Choi

질문자

2024.03.08

빠른 답변 감사드립니다!!