2017-11-11 2 views
1

NavigationActions.init() 또는 문서에 언급 된 상태에서 올바르게 상태를 생성하지 못했습니다. 이 내 네비게이터가 정의하는 방법입니다 :탐색 경로 상태에 키와 색인이 있음

const HomeNav = TabNavigator({ 
feed:{screen:Feed}, 
restaurantScreen:{screen:Restaurant}, 
},{ 
tabBarComponent:NavigationComponent, 
tabBarPosition:'bottom', 
tabBarOptions:{ 
    bottomNavigationOptions:{ 
     labelColor:'white', 
     rippleColor:'white', 
     tabs:{ 
      feed:{ 
       barBackgroundColor:'#37474F', 
      }, 
      restaurantScreen:{ 
       barBackgroundColor:'#00796B', 
      } 
     } 
    } 
} 
}); 
export const Navigator=StackNavigator(
{ 
    HomeScreen:{screen:Home}, 
    VerifyScreen:{screen:Verify}, 
    newUserScreen1:{screen:newUser1}, 
    newUserScreen2:{screen:newUser2}, 
    loginScreen:{screen:login}, 
    feedScreen:{screen:HomeNav}, 
}, 
{ 
    headerMode:'none', 
}, 
); 

을 그리고 이것은 내 초기 상태를 설정하고 방법입니다

const initialState=Navigator.router.getStateForAction(
NavigationActions.init() 
); 

function navigate(screenName,state){ 
return Navigator.router.getStateForAction(NavigationActions.navigate({routeName:screenName},state)); 
} 

다음 오류가 나타납니다 : Expect nav state to have routes and index,{routeName:'feedScreen',key:...}하는 탭 네비게이터 먹이를 탐색 할 때. 두 번째 코드에서

답변

0

은 다음과 같이해야한다 니펫을 :

const initialState=Navigator.router.getStateForAction(
NavigationActions.init() 
); 

function navigate(screenName,state){ 
return Navigator.router.getStateForAction(NavigationActions.navigate({routeName:screenName}),state); 
} 
  • getStateForAction 두 번째 "상태"매개 변수를받는 대신 NavigationActions.navigate에 전달했다.

  • NavigationActions.init()은 상태를 초기화하는 매개 변수로 {routeName : 'screen1'}과 (과) 같은 모든 개체가 필요합니다. 따라서 다음과 같이되어야합니다 : NavigationActions.init({routeName:'screen1'}).