2016-02-28 131 views
0

我遇到了問題,其中onRightButtonPress未將新路由推送到導航器。似乎我沒有navigator對象,因爲我沒有任何道具。我錯過了什麼?當我點擊觸發onRightButtonPress函數的「創建」按鈕時,我想渲染另一個視圖。在React Native Navigator中無法渲染新組件

export default class App extends Component { 
    render() { 
    const addWorkoutRoute = { 
     title: 'Add workout', 
     component: AddWorkout, 
    }; 

    return (
     <Provider store={store}> 
     <NavigatorIOS 
      style={styles.container} 
      initialRoute={{ 
      rightButtonTitle: 'Create', 
      onRightButtonPress:() => this.props.navigator.push(addWorkoutRoute), 
      title: 'Workout overview', 
      component: WorkoutList, 
      }} 
     /> 
     </Provider> 
    ) 
    } 
} 

回答

0

嘗試設置在NavigatorIOS一個裁判,並推到裁判:

<NavigatorIOS 
    ref="nav" 
    style={{ flex: 1 }} 
    initialRoute={{ 
     rightButtonTitle: 'Create', 
     onRightButtonPress:() => this.refs.nav.push(addWorkoutRoute), 
     title: 'Workout overview', 
     component: WorkoutList, 
     }} 
    /> 

注意,它現在推到裁判:

onRightButtonPress:() => this.refs.nav.push(addWorkoutRoute), 

我想這是因爲不是航海家的道具,因爲它仍然是航海家的實例。

我設置了here的基本實現。

https://rnplay.org/apps/J_4iGg