2017-02-22 4 views
7

다소 혼란스러운 점 중 하나는 경로 이름과 키의 차이이며 다른 하나와 다른 경로를 사용하는 이유입니다. 그리고 중복 경로 이름이 처리되는 방법. 반응 탐색에서 routeName과 key의 차이점은 무엇입니까?

https://reactnavigation.org/docs/navigators/navigation-prop

당신이 화면으로 이동 routeName를 사용하고, 그 key이라고 말한다 "경로를 정렬하는 데 사용되는 고유 식별자입니다." 그게 무슨 뜻 이죠?

바깥 쪽 탭과 내부 스택의 경로 이름이 같기 때문에 경로 예문이 내 예와 같이 고유하지 않아도됩니다. 네비게이션 기능을 사용할 때 - 경로 이름을 전달 했습니까? 그렇다면 네비게이션 네비게이터에서 중복 된 경로 이름과 경로를 구분하는 방법은 무엇입니까?

 export TabsNavigator = TabNavigator({ 
      Home: { 
      screen:StackNavigator({ 
       Home: { screen: HomeScreen }, 
      }), 
      }, 
      Profile: { 
      screen: StackNavigator({ 
       Profile: { ProfileScreen }, 
      }), 
      }, 
     }); 

문서에는 키를 설정의 예를 가지고 있지만 나는 일을하려고, 또는 왜 당신이 진짜 유스 케이스에 그것을 할 것입니다 무슨의 맥락을 이해할 수 없습니다. https://reactnavigation.org/docs/navigators/navigation-prop

import { NavigationActions } from 'react-navigation' 

const setParamsAction = NavigationActions.setParams({ 
    params: {}, // these are the new params that will be merged into the existing route params 
    // The key of the route that should get the new params 
    key: 'screen-123', 
}) 
this.props.navigation.dispatch(setParamsAction) 

답변

1

당신은/열 화면을 표시합니다 (예를 들어, StackNavigator)는 네비게이터에 지정된 화면의 이름을 사용합니다. 각 화면에는 키인 고유 식별자가 있습니다. 예 : 동일한 유형의 두 화면을 열면 동일한 경로 이름을 갖지만 다른 키는 갖습니다.

this.props.navigation.dispatch(NavigationActions.setParams(params: {val: 'val'}, key: 'home-1'));을 사용하면 'home-1' 키를 사용하여 화면의 탐색 상태를 업데이트 할 수 있습니다. 예 : StackNavigator 및 홈 화면 상단에 설정 화면이있는 경우 홈 화면의 탐색 상태 (this.props.navigation.state.params)를 설정 화면에서 업데이트 할 수 있습니다.

+3

NavigationActions를 사용하지 않는 경우 어디에서 키를 지정합니까? StackNavigator 경로 정의에 있습니까? – vijayst

+1

고유 키를 구성하는 위치는 무엇입니까? 화면 당 또는 탐색기 당입니까? 문서는 키에별로 나빠요 ... – CoredusK