2016-02-28 73 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