inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

코드정리

306

이우진

작성한 질문수 8

0

AppBar 위젯 코드를 정리하실 때, stless위젯을 따로 만들지 않고 함수로 가져오셨는데 위젯을 함수로 가져올지 Expnade 위젯처럼 stless위젯으로 가져오는지 어떤 기준으로 나뉘는건가요?

class AppBar extends StatelessWidget {
  const AppBar({super.key});

  @override
  Widget build(BuildContext context) {
    return AppBar(
      title: Text(
        "App name",
        style: TextStyle(
          color: Colors.blueAccent,
        ),
      ),
      backgroundColor: Colors.white,
    );
  }
}

또한 AppBar를 Stless 위젯으로 만들어보려고 했을때 title 부분과 backgroundColor 부분에서 오류가 나는데 그 이유도 알 수 있을까요?

flutter 클론코딩

답변 1

1

코드팩토리

안녕하세요!

모든 오류는 어떤 오류가 나는지 안 알려주시면 답변을 드릴 수 없습니다.

'오류가 나요'는 '요리 했는데 맛이 없어요'랑 똑같습니다. 과정과 어떤 오류가 나는지 알려주셔야 제가 도움을 드릴 수 있습니다.

위젯을 새로 만들면 새로운 위젯의 라이프 사이클을 생성하게 됩니다. 화면에 그리려는 요소들이 서로 다른 라이프 사이클을 갖고 효율적으로 렌더링 할 수 있게 된다면 나누는게 조금 더 효율적입니다.

하지만 함수로 빼게되면 함수가 속한 위젯의 라이프사이클에 종속됩니다. 그래서 단순히 코드 정리하는 정도만 된다고 생각하시면 됩니다.

또한, AppBar의 경우 그냥 위젯이 아니라 PreferredSizeWidget입니다 (정의로 가기 해보세요). 그렇기 때문에 단순히 StatelessWidget으로 구현이 불가능합니다. OOP에서 배우셨던 것 처럼 PreferredSizeWidget의 모든 요소를 implement 하지 않으면 주입이 불가능합니다.

감사합니다!

198강 (){onTap(e);}의 이해 돕기

0

39

1

video_call 플러그인 설치후 에러 발생

0

47

1

SDK 안드로이드 설치 질문!

0

62

1

코드팩토리 디스코드 링크 다시 부탁드려요~

0

92

1

Webview를 이용해서 URL 상의 페이지 출력 불가

0

71

1

홈스크린 함수를 함축해서 main.dart에 옮기는 문제

0

56

1

플레이스토어

0

60

1

아고라 엔진 init 함수의 반환타입이 Future<void> 이것의 의미는 무엇인가요?

0

56

1

가이드라인 질문

0

59

0

emulator 에러 환경설정 뭐가 문제 일까요??

0

78

1

emulator 실행 오류

0

95

3

Column을 가로방향 최대 사이즈를 차지하도록 하는 방법에 관련

0

73

1

pubspec.yaml에서 font를 추가하면서 weight 값을 지정하는 것이 의미가 있는 것인지 문의

0

43

1

setState()를 호출하지 않으면 build가 실행 안되는 건가요?

0

54

1

video_call 플러그인 설치시 에러문제

0

66

1

children 안의 if 문에서 { } 못쓰는 이유?

0

51

1

이렇게 오류가 떠요

0

66

1

AppBar 사용했는데

0

63

2

[문제해결] '오늘도 출첵!' 의 171번 강의에서 중요한 문제를 발견했습니다

0

58

1

StatefulWidget 실습 에러가 발생합니다.[해결완료]

0

65

1

Video Player 프로젝트에 대한 추가 질문

0

54

0

Row위젯이나 column위젯의 위치는 누가 정하나요??

0

43

1

geolocator 오류때문에 개발진행이 불가능입니다

0

64

1

API 관련 이슈

0

89

2