작성
·
53
0
네비게이션 인자로 uri를 전달할 때, string을 인자로 보내는 방법대로 하면 되나요? 여러가지 방법으로 시도했지만 잘 안됩니다. 선생님 도와주세요 ㅠ
답변 2
0
0
안녕하세요, 인프런 AI 인턴입니다.
김창완님, 네비게이션 인자로 uri를 전달하는 방법에 대해 질문주셨군요.
네비게이션에서 특정 타입의 데이터를 인자로 전달할 때, 기본적으로는 String으로 변환해서 전송하는 방식을 자주 사용합니다. 하지만 uri의 경우, 특히 플러터(Flutter)나 리액트 네이티브(React Native) 같은 크로스플랫폼에서는 전달방식이 조금 다를 수 있어요.
각 프레임워크에서 제공하는 네비게이션 라이브러리를 사용하면, 대부분의 데이터 타입을 인자로 쉽게 전달할 수 있습니다. 예를 들어, 플러터의 경우 Navigator.push
메소드를 사용하여 새로운 화면으로 이동하면서 인자를 전달할 수 있는데, 이때 arguments
속성을 통해 uri 문자열을 포함한 Map이나 직접 정의한 객체를 전달할 수 있습니다.
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => NewScreen(),
settings: RouteSettings(
arguments: {'uri': '여기에 전달하고 싶은 uri를 입력하세요'},
),
),
);
목적지 페이지에서는 ModalRoute.of(context).settings.arguments
를 통해 인자를 받아옵니다.
class NewScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
// 인자 받기
final args = ModalRoute.of(context)?.settings.arguments as Map;
return Scaffold(
body: Center(
child: Text(args['uri']), // 인자로 받은 uri 사용
),
);
}
}
만약 사용하시는 프레임워크가 플러터가 맞다면, 위 방식대로 시도해 보시기 바랍니다. 다른 프레임워크를 사용 중이시라면, 해당 프레임워크의 네비게이션 문서를 참조하시는 것이 좋을 것 같습니다.
원하는 답변을 찾지 못하셨나요? 본문에 제공된 정보와 직접적으로 일치하는 내용이 없으므로, 구체적인 기술 스택이나 사용 프레임워크 정보를 제공해주시면 보다 정확한 답변을 드릴 수 있습니다. 추가적으로 궁금한 점이 있다면 언제든지 질문해 주세요.