반응형
질문
나는 많은 화면을 가지고 있으며 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;
}
},
);
반응형
댓글