본문 바로가기
Flutter/Flutter FAQ

Flutter 플러터에서 이름이 지정된 경로에 문자열이 아닌 데이터를 전달하는 방법은 무엇인가요?, How do I pass non-string data to a named route in Flutter?

by 베타코드 2023. 9. 29.
반응형

질문


나는 많은 화면을 가지고 있으며 Navigator를 사용하고 있습니다. "이름이 지정된 경로"를 사용하고 싶지만, 다음 경로에 문자열이 아닌 데이터 (예: 이미지)를 전달해야합니다.

pushNamed()를 사용할 수 없으므로 문자열이 아닌 데이터를 전달할 수 없습니다.

이름이 지정된 경로를 사용하고 문자열이 아닌 데이터를 전송하는 방법은 무엇인가요?


답변


편집:

Navigator.pushNamed에 복잡한 인수를 전달하는 것이 이제 가능합니다:

String id;
Navigator.pushNamed(context, '/users', arguments: id);

그런 다음 이러한 인수를 사용하여 경로 빌딩을 사용자 정의하는 데 onGenerateRoute에서 사용할 수 있습니다:

MaterialApp(
  title: 'Flutter Hooks 갤러리',
  onGenerateRoute: (settings) {
    final arguments = settings.arguments;
    switch (settings.name) {
      case '/users':
        if (arguments is String) {
          // 특정 사용자의 세부 정보 페이지
          return UserDetails(arguments);
        }
        else {
          // 모든 사용자 목록을 표시하는 경로
          return UserList();
        }
      default:
        return null;
    }
  },
);
반응형

댓글