파파비의 블로그

플러터, flutter) Input을 도와주는, Form 위젯(3) - 값 타당성 검사 본문

개발/flutter

플러터, flutter) Input을 도와주는, Form 위젯(3) - 값 타당성 검사

N. Dave 2020. 6. 10. 08:48
반응형

타당성을 검사하는 방법은 언제하느냐에 따라 2가지로 나눌 수 있다.

 

1. 매번 어떤 입력이 form으로 들어올 때 마다 할 것이냐 /

2. 마지막에 어떤 버튼을 누르면 할 것이냐 

 

 

1번을 실행하는 것은 쉽다.

Form위젯에 autovalidate 속성을 true로 설정해두면 된다. 디폴트는 false이다.

그러면 어디든 값이 하나라도 들어오거나 없어지면, 즉, 변경이 생기면 

모든 Text form field 위젯들의 validator가 작동된다. 

이 경우 TextFormField 위젯들의 입력값이 변화가 생기면 validator들이 전부 자동으로 실행된다

 

2번을 실행하는 것도 쉽다.

일단 당연히 autovalidate은 false여야 하고,

form에 연결된 globalkey 위젯 레퍼런스를 통해, .currentState.validate() 을 실행하면 된다.

그러면 모든 TextFormField위젯들의 validator가 작동하고 하나라도 에러가 나면 false를 반환,

그게 아니라면 true를 반환한다.

이런식으로 save메소드와도 함께 사용할 수 있다.

 

validator?

TextFormField 위젯들은 validator 속성을 갖고 있으며 여기에는 String 값을 반환하는 메소드가 들어간다.

string 값은 에러텍스트이다. 따라서, 에러가 없다면 null을 반환하는게 맞다.

 

validator 꾸미기

TextFormField 위젯에 decoration에 inputDecoration에 error에 관한 것들을 다룰 수 있다.

여기서는 errortext도 설정할 수 있어서 위의 validator의 역할과 다소 겹치기도 한다.

 

 

 

<참고> 가격에 대한 validator 

tryParse는 이상한 값이 들어오면 null을 반환한다.

 

<참고> url에 대한 validator

startWith & endWith의 사용을 잘 익혀두면 좋을 것 같다.

실제로 모든 도메인이 앞에 http를 앞에 붙진 않으므로 실제로 사용하긴 어렵고,

제품수준으로는

https://www.udemy.com/course/learn-flutter-dart-to-build-ios-android-apps/learn/lecture/15158310#questions

글을 참고해보는게 좋을 것이다.

반응형
Comments