스크린을 추가할 때 프롭을 전달받도록 만들기

Column
navigator에 screen을 추가하는 시점의 설정. navigate parmas로 전달하는 예시 아님.
Tags
 
  • 화면간의 전환 시에는 navigation.navigate('화면이름', {params: '전달이름':'전달값'} 이렇게 가능
  • 하지만, 애초에 navigatorscreen을 추가하는 초기 상황에서 스크린이 애초에 프롭을 전달받아 생성되도록 하고싶을 때에는 navigate로 해결이 안된다.

해결 코드

  • 스크린 추가 시, component 대신 children으로 프롭을 전달할 수 있다.
<tab.Screen name="hasChildren" children={()=><ComponentName myCustomProp={propValue}/>} />
 
  • children 프롭을 전달하는 것보다, open close 안에 children 컴포넌트를 선언하는 것이 권장된다.
<Stack.Screen name='hasChildren' > <ComponentName myCustomProp={propValue}/> </Stack.Screen>
 
  • 네비게이터를 자식으로 전달하는데, 프롭으로 전달하고 싶은게 있을 경우
<Stack.Screen name='SettingDiagnosis' options={{ headerShown: false, }} > {(): ReactElement => ( <DiagnosisStackNavigator onPressXButton={onPressXButton} /> )} </Stack.Screen>