인프런 커뮤니티 질문&답변

헤이나우님의 프로필 이미지
헤이나우

작성한 질문수

[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!

setState 사용 차이

작성

·

296

·

수정됨

1

강의 잘 보고 있습니다.

강의가 너무 좋아서 책도 함께 구매하려고 합니다.

좋은 강의 감사합니다.

 

다름이 아니고 질문이 하나 있어 이렇게 글남깁니다.

 

플루터에서 setState는 화면을 갱신하는 용도로 사용하고 있다고 알고 있습니다.

만약에 a= 10이라고 설정한다고 가정하면

  1. setState(() { a = 10; });

  2. a = 10; setState( () { } )

 

 

1번 로직과 2번 로직이 내부에서 어떤 차이점이 있을까요?

테스트 해본결과 1번, 2번 모두 정상 작동하더라구요

 

 -----------------------------------------------

공부하다 추가 질문이 있어 문의 드립니다.

플루터에서 네임드 라우팅을 materialApp에 설정할때 특정 페이지에 필수 파라미터가 존재하면 어떤식으로 등록을 해야 할까요?

예 )

가정 : Two 페이지는 str값을 필수 파라미터로 받고 있습니다.

routes: {

"/": (context) => One(),

"/two": (context) => Two(str : ??),

},

이게 안되면 아래와 같은 방법으로 파라미터를 설정해야 하는지 궁금합니다!

var two = Two();

two.str = "asdf";

Navigator.of(context).push(MaterialPageRoute(builder: (_) => two));

 

 

답변 1

0

코드팩토리님의 프로필 이미지
코드팩토리
지식공유자

안녕하세요!

setState()는 말씀하신대로 buid() 함수를 재실행하는 역할을 하기때문에 상태를 따로 변경한 뒤 setState()를 실행해도 아무런 문제가 없습니다. 하지만 "명시적"으로 어떤 변수가 build() 함수가 재실행 된 뒤 변경돼야하는지 구분하기 어렵습니다.

화면이동간 상태를 넘겨주는경우 전자가 맞습니다.

감사합니다!

헤이나우님의 프로필 이미지
헤이나우

작성한 질문수

질문하기