강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của anwjr412863
anwjr412863

câu hỏi đã được viết

[Nhà máy mã] [Trung cấp] Hoạt động rung chuyển! Các kỹ năng cần thiết để trở thành tiền vệ như quản lý trạng thái, quản lý bộ đệm, tạo mã, GoRouter và logic xác thực!

Đăng ký nhà cung cấp cho Dio

_SplashScreenState에서 storage를 late로 호출해서 한번만 불러와도 되나요?

Viết

·

77

·

Đã chỉnh sửa

0

강의에서는

final storage = ref.read(secureStorageProvider);

이 코드를 checkToken과 deleteToken에서 불러 사용하고 있는데 여러번 부르는 것이 싫다면

class _SplashScreenState extends ConsumerState<SplashScreen> {
late final storage = ref.read(secureStorageProvider);

  @override
  void initState() {
    super.initState();
    //토큰 검사
    checkToken();
    // deleteToken();
  }

또는

class _SplashScreenState extends ConsumerState<SplashScreen> {
  late final FlutterSecureStorage storage;
  @override
  void initState() {
    super.initState();
    storage = ref.read(secureStorageProvider);
    //토큰 검사
    checkToken();
    // deleteToken();
  }

으로 한번만 불러서 storage를 바로 사용해도 될까요? 이렇게 사용해도 버그나 라이프사이클에 문제가 있을지 궁금합니다.

강의 잘 듣고 있습니다!! 감사합니다.

flutter하이브리드-앱

Câu trả lời 2

0

anwjr41님의 프로필 이미지
anwjr41
Người đặt câu hỏi

가능하다라는 것으로 이해하겠습니다!
다른 지식적인 부분이 있으시다면 달아주시면 감사하겠습니다!!

codefactory님의 프로필 이미지
codefactory
Người chia sẻ kiến thức

실행은 되겠으나 굳이 그렇게 할 필요가 없습니다.

만약에 secureStorageProvider가 변경될경우 최신 버전을 제공받지 못하는 문제가 생길 수 있습니다.

감사합니다!

0

안녕하세요, 인프런 AI 인턴입니다.

Flutter에서 여러 곳에서 동일한 인스턴스를 사용하고자 할 때, late 키워드를 사용해 변수 선언을 지연 초기화하는 방식으로 한 번만 객체를 생성하는 것이 가능합니다. 이를 통해 반복적으로 객체를 생성하는 비용을 절약할 수 있습니다.

late 변수 사용

  • late final storage = ref.read(secureStorageProvider);를 클래스 레벨에서 선언: 이 방식은 앱 라이프사이클 동안 storage 인스턴스를 한 번만 초기화하고 유지하도록 합니다. 이렇게 되면 initState()가 실행될 때 이미 초기화되어 있을 것입니다.

  • initState()에서 storage = ref.read(secureStorageProvider); 설정: 이 경우도 initState 초기화 과정에서 storage가 한 번만 설정되기 때문에 해당 클래스 인스턴스의 라이프사이클 동안 동일한 객체를 사용하게 됩니다.

두 방식 모두 문제 없이 동작할 수 있으며, Flutter의 ConsumerStateinitState에서 한 번 초기화하는 방식과 잘 어울립니다. 다만, 변수 선언 위치에 따라 코드의 가독성과 이해도가 달라질 수 있으므로 팀 콘벤션이나 개인 스타일에 맞추어 선택하시면 됩니다.

관련하여 기존 지식공유자님의 답변을 살펴보고 싶으시다면, secureStorage provider 질문드립니다!을 확인해 주세요. 여기서는 FlutterSecureStorage를 관리하는 방식에 대한 이해를 더할 수 있는 논의가 진행되고 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Hình ảnh hồ sơ của anwjr412863
anwjr412863

câu hỏi đã được viết

Đặt câu hỏi