인프런 커뮤니티 질문&답변

김창완님의 프로필 이미지
김창완

작성한 질문수

네비게이션 인자로 uri를 전달하는 방법이 궁금합니다

작성

·

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 사용
      ),
    );
  }
}

만약 사용하시는 프레임워크가 플러터가 맞다면, 위 방식대로 시도해 보시기 바랍니다. 다른 프레임워크를 사용 중이시라면, 해당 프레임워크의 네비게이션 문서를 참조하시는 것이 좋을 것 같습니다.

원하는 답변을 찾지 못하셨나요? 본문에 제공된 정보와 직접적으로 일치하는 내용이 없으므로, 구체적인 기술 스택이나 사용 프레임워크 정보를 제공해주시면 보다 정확한 답변을 드릴 수 있습니다. 추가적으로 궁금한 점이 있다면 언제든지 질문해 주세요.

김창완님의 프로필 이미지
김창완

작성한 질문수

질문하기